No.2 大众点评评论爬取 |
您所在的位置:网站首页 › python爬取facebook直播评论区的用户数据 › No.2 大众点评评论爬取 |
大众点评评论爬取
一、简介
网址:http://www.dianping.com/shop/G41gaJfqGBICtiVY 效果:爬取评论 使用框架:selenium、requests、re 难度系数:✩✩✩✩✩ 引言大众点评的反爬措施一直都是响当当的,最近由于作业需要,需要来碰一碰这个霉头。没办法,只能硬着头皮上了。 经过一上午的艰难分析终于实现了整个过程。整个分析过程犹如玩了一场紧张刺激的密室逃生。 二、教程 1. 网站分析 评论分析本次爬虫选取的是四川成都的一家餐厅:饕林餐厅(春熙路店) 查看完整评论时发现需要登陆 登录后再对页面进行分析 经过初步分析,发现爬取大众点评用户评论有三个难点: 查看完整评论和更多评论需要登陆后才可以评论数据包的链接比较复杂,需要研究页面js代码评论数据不完整,部分文字被替换 2. Selenium自动化登陆基于初步分析遇到的困难,决定采用Selenium调用浏览器采取手动登陆的方式来解决前两个问题: import time import random from selenium import webdriver url = 'http://www.dianping.com/shop/G41gaJfqGBICtiVY/review_all/p{}' driver = webdriver.Firefox(executable_path=r'geckodriver.exe') driver.get(url.format(1)) time.sleep(30) # 暂停30s,在这个时间内进行登陆操作 # 这里选择只爬取三页数据 for i in range(1, 3): driver.get(url.format(i)) time.sleep(random.randint(5, 10)) driver.find_element_by_class_name('fold').click() # 发送点击事件展开评论 time.sleep(2) # 将渲染后的网页保存为文件,就不用多次运行爬虫了 with open('html/p%d.html'%i, 'w', encoding='utf-8') as f: f.write(driver.page_source) driver.close() 3. 揭秘CSS反爬剩下最后一个问题就是解决评论中部分内容被替换的问题。 分析CSS加密过程审查页面元素,发现被替换部分的一些 CSS信息,在这里我们发现了一个backgroung-image CSS加密过程既然已经了解了,那么我们就可以开始解密了: import re import requests # 加载html文件内容 with open('html/p1.html', 'r', encoding='utf-8') as f: html = f.read() # 获取css文件 css = re.findall('', html, re.S) css_url = 'http:{}'.format(css[1]) css_content = requests.get(css_url).text with open('css/css.css', 'w', encoding='utf-8') as f: f.write(css_content) # 获取字库 font = re.findall('background-image: url\((.*?)\);', css_content, re.S) font_url = 'http:{}'.format(font[1]) font_content = requests.get(font_url).text with open('font/font.swg', 'w', encoding='utf-8') as f: f.write(font_content) # 获取信息 for i in range(1, 3): with open('html/p{}.html'.format(i), 'r', encoding='utf-8') as f: html = f.read() inf = re.findall('', '') inf_copy = inf_copy.replace('\n', '') inf_copy = inf_copy.replace(' ', '') inf_copy = inf_copy.strip() print(inf_copy) 结语在反反爬虫的过程中,一定要细致,每一个细节都可能成为破译的关键。 PS:爬虫虽好,可不要贪杯哦,小心面向监狱编程哦😂 如果觉得有帮助,请为博主点一个小小的 star ✩吧,你的鼓励是博主最大的动力! [传送门] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |