java爬虫爬豆瓣图书_网络爬虫——爬取豆瓣图书
作者:徐浩 来源:人工智能学习圈
3.2.1 目标
目标地址:https://book.douban.com/top250?start=0
任务:爬取豆瓣图书TOP250,及其‘书名’、‘出版信息’、‘评分’、‘评价人数’四个数据
3.2.2 分析URL
首先先打开目标地址对url进行分析
观察第一页豆瓣图书如下:
preview
第二页豆瓣图书如下:
最后一页豆瓣图书如下:
我们可以发现url的结构是如何变化的,每一次的翻页所对应改变的是start参数的值,那么我们就可以构造urls:
3.2.3 请求网页
我们看到其中有response.encoding = 'utf-8',这个可以根据标签中的信息分析得到,还可以改为response.encoding=response.apparent_encoding
这个的意思是说,把响应的结果的 html 源码的编码格式设置成 utf-8,不这样做的话,我们提取到的数据中如果有中文的,那显示就会是乱码
3.2.4 分析数据
鼠标放在目标元素位置,右键-检查,我们看到第一本书的我们需要的详细信息都在
里面,所以我们需要提取这一页的所有的标签:
infos = html.xpath('//tr[@class="item"]')
返回的是一个列表,再一次循环列表的每一个标签,从中提取出对应的数据,其实不用提取数据的 xpath 路径不需要去看路径张啥样在去手敲进去,可以复制得,但需要修改
我们以提取书名为例,在书名那里右键-检查,如下图,复制出 xpath 路径
粘贴代码为://*[@id="content"]/div/div[1]/div/table[1]/tbody/tr/td[2]/div[1]/a
我们观察我们已经提取的 tr 标签 '//tr[@class="item"]' ,在看上面找到 tr ,以它为断点(包含它),前面的删掉改成如下:
name = info.xpath('./td[2]/div[1]/a/text()')[0]
因为我们已经提取了一大包含我们需要的数据的大标签 tr,是从中再提取数据,所以前面多余的删掉,包含 tr 也删掉,因为是从它的里面提取
另外数据同理,所以可写代码:
提取后,我们需要用 replace 把多余字符去掉,最后打印
到这里接就完成了提取数据
3.2.5 小结
完整代码如下:
运行结果如下:
欢迎大家加入人工智能圈参与交流
原文链接: https://zhuanlan.zhihu.com/p/140246883
总结
以上是生活随笔为你收集整理的java爬虫爬豆瓣图书_网络爬虫——爬取豆瓣图书的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Codeforces Round #66
- 下一篇: MODBUS寄存器从40000开始而不从