python3爬虫案例详解系列

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

2017-12-23  本文已影响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页的内容,大家可以提前思考下,怎样实现翻页哦。

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


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

公众号:工科男雷先生

上一篇 下一篇

猜你喜欢

热点阅读