import reimport requestsimport timefrom lxml import etreefrom handle_mongo import handle_get_taskfrom handle_mongo import handle_insert_douyindef handle_decode(input_data,share_web_url,task):search_douyin_str = re.compile(r'抖音ID:')regex_list = [{'name':['  ','  ','  '],'value':0},{'name':['  ','  ','  '],'value':1},{'name':['  ','  ','  '],'value':2},{'name':['  ','  ','  '],'value':3},{'name':['  ','  ','  '],'value':4},{'name':['  ','  ','  '],'value':5},{'name':['  ','  ','  '],'value':6},{'name':['  ','  ','  '],'value':7},{'name':['  ','  ','  '],'value':8},{'name':['  ','  ','  '],'value':9},]for i1 in regex_list:for i2 in i1['name']:input_data = re.sub(i2,str(i1['value']),input_data)share_web_html = etree.HTML(input_data)douyin_info = {}douyin_info['nick_name'] = share_web_html.xpath("//div[@class='personal-card']/div[@class='info1']//p[@class='nickname']/text()")[0]douyin_id = ''.join(share_web_html.xpath("//div[@class='personal-card']/div[@class='info1']/p[@class='shortid']/i/text()"))douyin_info['douyin_id'] = re.sub(search_douyin_str,'',share_web_html.xpath("//div[@class='personal-card']/div[@class='info1']//p[@class='nickname']/text()")[0]).strip() + douyin_idtry:douyin_info['job'] = share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/div[@class='verify-info']/span[@class='info']/text()")[0].strip()except:passdouyin_info['describe'] = share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/p[@class='signature']/text()")[0].replace('\n',',')douyin_info['location'] = share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/p[@class='extra-info']/span[1]/text()")[0]douyin_info['xingzuo'] = share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/p[@class='extra-info']/span[2]/text()")[0]douyin_info['follow_count'] = share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/p[@class='follow-info']//span[@class='focus block']//i[@class='icon iconfont follow-num']/text()")[0].strip()fans_value = ''.join(share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/p[@class='follow-info']//span[@class='follower block']//i[@class='icon iconfont follow-num']/text()"))unit = share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/p[@class='follow-info']//span[@class='follower block']/span[@class='num']/text()")if unit[-1].strip() == 'w':douyin_info['fans'] = str((int(fans_value)/10))+'w'like = ''.join(share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/p[@class='follow-info']//span[@class='liked-num block']//i[@class='icon iconfont follow-num']/text()"))unit = share_web_html.xpath("//div[@class='personal-card']/div[@class='info2']/p[@class='follow-info']//span[@class='liked-num block']/span[@class='num']/text()")if unit[-1].strip() == 'w':douyin_info['like'] = str(int(like)/10)+'w'douyin_info['from_url'] = share_web_urlprint(douyin_info)handle_insert_douyin(douyin_info)def handle_douyin_web_share(task):share_web_url = 'https://www.douyin.com/share/user/'+task["share_id"]print(share_web_url)share_web_header = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36'}share_web_response = requests.get(url=share_web_url,headers=share_web_header)handle_decode(share_web_response.text,share_web_url,task["share_id"])if __name__ == '__main__':while True:task=handle_get_task()handle_douyin_web_share(task)time.sleep(2)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。