python爬虫豆瓣电影短评_Python爬虫:豆瓣短评

上一篇高德地图爬虫的可能对于一开始入门而言,复杂了点,那这次来个简单的(简单=程序短 我明白)

废话不说,走心(程序)

载入包、获取url及xpath获取指定内容

说明一下:xpath的内容是根据网页具体的内容copy的,操作如下:

1.打开《恶意》短评

2.F12进入开发者模式,F5刷新

3.“Ctrl+shift+C”进行元素检查,选取任意短评框,效果如下图所示:

元素检查

Elements中高亮的行即为所选短评对应的代码,点击箭头开展,选中评语内容,右击“copy xpath":

copy xpath

这样我们就获取到了我们需要的短评对应的xpath“//*[@id="comments"]/ul[1]/li[2]/div[2]/p/span/text()”,取两个短评比照其xpath发现li[?]决定该页上的短评序号,所以在程序中我们将其用“li[*]”替代,这样得到的就是该页所有短评

这里其实有点小遗憾,我本来是想爬取指定页数的所有短评的,很简单,更改url就可。可以发现

第一页的url:https://book.douban.com/subject/10554309/comments/

第二页的url:https://book.douban.com/subject/10554309/comments/hot?p=2

p决定了该书短评的页数

那么只需在requests的时候加上一个param就好了,如我要获取1~5页,那么修改程序如下:

读取多页短评

(这里就还是用到了merge_dicts函数,这个函数在高德地图提到过,就是一一初始化param的函数)

乍一看没问题,的确没问题,读者可以试一下。读取的数据是随着p改变而改变的。

问题出在保存,to_excel保存会覆盖掉源文件的内容,可我又不想每一页评语用一个excel存。

网上大神有很多方法,貌似有的可以实现在同一个xlsx文件的同一张表下依次排列,我没细看。不过用保存不同表明的方法来分开保存每页数据这个方法是没用的。上图程序用的就是这个方法,结果就是每页数据还是覆盖之前的数据,只是保存的时候表的名字变了而已。这里就期待大家一起努力实现这个功能啦。

这是个简单的爬虫应用,把2个重要的爬虫概念应用到了(当然只是最基础的应用,用到什么再学什么,一次记那么多功能应用,怎样可能上手快?):

requests(包、模块)、xpath(地址、资源)

我们没能力发现知识,我们只是知识的寄生虫

你可能感兴趣的:(python爬虫豆瓣电影短评)