第一次爬虫就是爬微博的评论(爬虫—只要能看就能爬)
准备工作:
Python2.7(看个人习惯)、FireFox浏览器(看个人习惯)
Python安装什么的网上一大堆教程,我不班门弄斧了
FireFox感觉我个人感觉好用一点,比起全英版的Chrome
from selenium import webdriver#这是重中之重咯,现在微博的评论都是有动态加载的,我是靠这个去控制鼠标行为的
import time#休眠(效果你懂的)、记录当前时间
import xlwt#写入文件用的
上面那几句只是记录一下需要用到的包
url = '******'#自己随便找个微博链接试试吧,不过如果你配置不够,不建议你找5w以上的,超级卡,这些还是得看配置的,网页需缓存
driver = webdriver.Firefox()#打开浏览器
driver.get(url)#输入链接并加载
time.sleep(10)#休眠一下,我不是机器人
此时此刻,如果你把网络断了,然后拉到页面最底下,会发现,评论显示是不全的,然后还有一个“正在加载”的东东显示,而且这个玩意如果你不拉下去是不会帮你加载的,如果你直接爬,你只能爬前面几十条。
重新联网,你会看到又加载N条评论出来,这时候我们就弄一个js,控制鼠标帮我们把页面拉到最底下,使得最大限量的评论显示出来
js="var q=document.documentElement.scrollTop=100000"#10w是指拉到位置值为10w的地方,当然,一般来说,刚加载的网页不会那么长,不然缓存都直接使电脑奔溃
for i in range(10):#重复个10次(当然可以设置更多,但其实一般1-2次就OK了),防止页面没加载完
driver.execute_script(js)#调用js,将页面拖到底
time.sleep(2)
你以为这样评论就显示全了?
其实还没,你看看是不是有一个“查看更多”按钮,点一下,好像多了几十条,但是还有这个按钮,那就是代表还有更多评论没显示,爬虫的中心是什么,能看的就能爬,你都还没看到,那就是还不能爬了,所以,继续点吧。
手点好像有点慢,有点累,那就换程序控制点击吧
接下来就是通过定位“查看更多”这