自学爬虫近1个月,基本的库啊框架啊基本也都囫囵吞枣的过了一遍,感觉网上视频里各大名师砖家带着练习的项目,基本都是毫无反爬机制的NC网站,感觉若是在实际工作中(没工作过-。-),怕是没有这么容易的网站要你爬取的吧。个人一点愚见,某网站数据有分析价值,才会有人爬,因为给爬多了运营小姐姐很生气,该网站才会去研究怎么反爬,于是反反爬,于是反反反爬,于是反反反反爬。。。。。连selenium这么低效的东西都给扯出来写爬虫,可以看出门户网站的大牛守护运营小姐姐的决心,反正个人暗下决心,不是万不得已,绝不用selenium这等伤敌一千,自损八百的武功。更扯的是,连检测selenium的招儿现在都给门户大佬们找了出来,还运用在了部分网站中。废话结束,来和各位和我一样的萌新分享分享我的微博爬虫,Lets go<( ̄︶ ̄)↗[GO!]
自定需求
- 门户网站:https://m.weibo.cn/
- 使用技术:requests以及。。。好像没有了
- 爬取字段:微博正文,转发数,评价数,点赞数
开始吧
- 说起爬微博,相信很多人也会和我一样,第一个想爬一爬的自然是体育界男神–罗,志,祥。OK,满怀期待的打开最爱的chrome,输入网址,搜索多人运动,哦不,搜索罗志祥,看看url,去掉没用的部分,找到最简洁的,好的,就是他:https://m.weibo.cn/u/1784537661?uid=1784537661
Ctrl+U,很好,源码空空荡荡,向下翻翻,哦,原来到底了会自动加载,那凭我久经沙场的这些个经验,应该是个ajax动态加载。Ctrl+Shift+I打开检查,锁定ajax,向下拉一下,他来了他来了
格式化json看看里面的数据,需要的数据确实都在里面,就是他了~
回头再看headers,参数也非常的友好,没有任何加密,简单分析基本都能知道是啥东西,除了那个since_id
这可咋整呢,放弃尊严和初心,selenium走起?
不慌,一通乱点之后发现,有这样一个东西
都叫since_id,应该没什么不同了,仔细分析下,发现存放的就是下一页需要给url传的那个值,那就容易了,拼接下url,循环访问,体育男神的微博就都到手了,OK,写代码~ - 贴上源码
写的比较粗糙,没有修改,毕竟练手小项目,不足之处还请各位补充~
import requests
from fake_useragent