TWIG::2020.07.17

Today lolol·2020년 7월 16일
0

TWIG

목록 보기
8/17
post-custom-banner

damn weekend

즐거운 주말이 또 다시 우릴 찾아온다. 😄

- Data-type table

# html case, depend on xpath expression

tag_type_dict = {
	'div': ['text', 'aria-label'],
    'p': ['text'],
    'img': ['src', 'alt'],
    'a': ['href', 'text'],
    ...
}

.....

result_elem = selector.xpath(<target_xpath>)
# get tag name from result element
result_tag_name = result_elem.xpath('name()').get()

elem_data = {}
data_type_list = tag_type_dict[result_tag_name]

# match to data type and extract data
for data_type in data_type_list:
	_type_expr = ''
 	# find which data type is
	if data_type == 'text':
    	_type_expr = 'text()'
    elif data_type == 'src':
    	_type_expr = '@src'
    ...
    # there is any data type exist in dict. extract data.
    if _type_expr != '':
    	elem_data[data_type] = result_elem.xpath(_type_expr).get()

해쉬 테이블 형태로 쓰니 좋더라 ~ 라고 할 수 있을 것이다.

# this code can conver to dict
	if data_type == 'text':
    	_type_expr = 'text()'
    elif data_type == 'src':
    	_type_expr = '@src'
        
# converted dictionary
attr_dict = {
	'text': 'text()',
    'src': '@src',
    ...
}

다음부터는 이 형태도 바꿔서 매치해야겠다.

check done

DONE !

profile
working making doing makes us 🤖
post-custom-banner

0개의 댓글