美文网首页Python小程序
Python爬虫:豆瓣短评

Python爬虫:豆瓣短评

作者: 末一哟 | 来源:发表于2018-10-19 14:35 被阅读279次

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

    废话不说,走心(程序)


    载入包、获取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爬虫:豆瓣短评

        本文链接:https://www.haomeiwen.com/subject/nlsyzftx.html