즐거운 주말이 또 다시 우릴 찾아온다. 😄
# 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',
...
}
다음부터는 이 형태도 바꿔서 매치해야겠다.