美文网首页python3爬虫案例详解系列
python3.6爬虫之豆瓣小王子详解(一)

python3.6爬虫之豆瓣小王子详解(一)

作者: 雷荣斌 | 来源:发表于2017-12-23 13:00 被阅读156次

    目标:抓取豆瓣小王子读者的书评,并保存于本地excel。

    爬虫的流程:发送请求——获得页面——解析页面——抽取并储存内容。

    我们第一个案例便采用:requests(获取)——xpath(解析)——pandas(储存)

    废话不多说,先上结果与代码:

    # -*- coding: utf-8 -*-   #告知用utf-8编码

    #获取

    importrequests#引入requests

    r = requests.get('https://book.douban.com/subject/1084336/comments/hot?p=1')#用get方法获取网页

    html = r.text#把内容赋值给html

    #解析

    fromlxmlimportetree#引入lxml的etree

    s = etree.HTML(html)#把html转换成lxml可解析的对象

    text_list = s.xpath('//*[@id="comments"]/ul/li/div[2]/p/text()')#解析这一页的text

    #储存

    importpandasaspd#引入pandas,简写成pd

    df = pd.DataFrame(text_list)#定义DataFrame对象并赋给df

    df.to_excel('D://comments.xlsx')#把结果输出为csv格式,存在D盘

    不超过10行代码,是不是很简单呢?

    现重点讲解解析部分xpath的用法:

    首先鼠标左键选取到需要爬取的书评

    右键,点击“检查”,在“Elements”下找到定位到所需数据

    右键——Copy——Copy Xpath,即可完成Xpath的复制

    示例:

    结果:

    //*[@id=“comments”]/ul/li[1]/div[2]/p

    在xpath中,获取文本信息只需在后加text()

    //*[@id="comments"]/ul/li[1]/div[2]/p/text()

    使用从浏览器复制Xpath的方法获取同一网页下不同短评的Xpath,通过对比发现其规律:

    通过对比可以发现从浏览器复制的Xpath中,“li[]”括号中的数字代表对应的第几条评论,直接删除括号,即可获取当前页面全部短评。

    总结:

    1:Python爬虫,上手其实很简单啦。

    2:推荐新手使用pycharm编辑器,界面实在太友好了。

    3:想要实现这个爬取,首先,你要安装request、xpath、pandas等第三方库哦,网上很多安装教程,在这我就不累赘了。

    4:每个软件、第三方库内容太多,我们不可能都去学,所以我们只需要去学习我们当前需要的知识就Ok了(学不在多,在于消化)。

    下一篇文章,将扩大难度,抓取小王子书评前100页的内容,大家可以提前思考下,怎样实现翻页哦。

    有不清楚的地方,大家可以留言,点赞哦,我看到了,会第一时间回复你。


    本文首发于微信公众号,喜欢的可以关注下哦

    公众号:工科男雷先生

    相关文章

      网友评论

        本文标题:python3.6爬虫之豆瓣小王子详解(一)

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