爬点什么好呢?最近老是浏览豆瓣上的帖子,那就爬取下豆瓣读书吧!

网络请求,返回值是html页面。
需要对返回回来的结果进行解析。使用Beautiful Soup来解析
参见(http://beautifulsoup.readthedocs.io/zh_CN/latest/)
说几个再爬虫中使用到的:
(1)find_all(tag,attributes,recursive,text,limit,keywords)
这个方法一般会大量使用,查找文档中含有该tag标签的所有信息

bsObj.find_all("li",{"class":""})

就是查找文档中所有的li标签,并且该标签的class属性为“”
(2)获取某个标签属性的值,可以使用tag.get(“属性名称”)

a.get("href")

(3)获取标签中的文本,可以使用get_text() 方法
如以下这种:

 <span class="publisher">理想国 | 广西师范大学出版社</span>

可以使用

span.get_text()

还有其他的父节点获取,子节点获取等等很多,参见文档获取详细用法。
上图:

我先拿到li标签下的信息,因为我只获取自己感兴趣的信息,所以创建列表,再分别获取div,h4,span标签下的信息,赋值。最后将其插入mongodb。

from urllib.request import urlopen,HTTPError
from bs4 import BeautifulSoup
import pymongo
import timeclient = pymongo.MongoClient('localhost', 27017) # 连接mongodb,端口27017
#db=client.myinfo
test = client['test'] # 创建数据库文件test
reptiledouban = test['reptiledouban'] # 创建表forecast
html=urlopen("https://book.douban.com/")
bsObj=BeautifulSoup(html,"html.parser")
dict={}
keys = ["_id","封面链接", "购买链接", "主题", "作者", "出版日期", "出版社"]
count=1
for link in bsObj.find_all("li",{"class":""}):for linkFirst in link.find_all("div",{"class":"cover"}):dict["封面链接"]=(linkFirst.a.get("href"))for linksecond in link.find_all("div", {"class": "intervenor-info"}):dict["购买链接"] = (linksecond.img.get("src"))for linkThird in link.find_all("div", {"class": "more-meta"}):dict["主题"] = (linkThird.h4.get_text())for linkFourth in link.find_all("div", {"class": "author"}):dict["作者"] = (linkFourth.get_text())for linkFive in link.find_all("span", {"class": "year"}):dict["出版日期"] = (linkFive.get_text())for linkSix in link.find_all("span", {"class": "publisher"}):dict["出版社"] = (linkSix.get_text())if  dict:dict["_id"] = countreptiledouban.insert_one(dict) #插入mongodb数据库time.sleep(1)  # 线程推迟1s执行count = count + 1

最后mongdb 中的结果如下:

问题总结:
(1)mongdb中插入数据库,按照默认的“_id”字段,主键插入重复,所以我重新自定义了主键,每次自增一,解决重复问题。
(2)我现在爬取出来的数据其中有重复数据,还不知道这是怎么回事?待解

Python爬虫-爬取豆瓣读书相关推荐

  1. python爬虫爬取豆瓣读书Top250

    python爬虫爬取豆瓣读书Top250 话不多说,直接上代码! from urllib.request import urlopen, Request from bs4 import Beautif ...

  2. Python爬虫 爬取豆瓣读书

    最近用Python写了个豆瓣读书的爬虫玩,方便搜罗各种美美书,分享给大家 实现功能: 1 可以爬下豆瓣读书标签下的所有图书 2 按评分排名依次存储 3 存储到Excel中,可方便大家筛选搜罗,比如筛选 ...

  3. python爬虫爬取豆瓣读书

    python的课程设计,我爬取的是豆瓣的图书 设计题目:  豆瓣读书的Python爬虫 一.需求分析 由于豆瓣上的图书良莠不齐,很难一下选择适合我们的图书,所以我想通过Python的爬虫程序,实现对豆 ...

  4. Python爬虫 - 爬取豆瓣读书TOP250电子书

    1.爬取思路 访问豆瓣读书top250,并提取书籍名称. 把提取的书籍名称,放到搜书网站(本文使用的是熊猫搜书). 把搜索的结果保存到本地.(底部有保存的文本文件,需要自提) 2.重点解析 1.豆瓣翻 ...

  5. 利用python爬虫爬取豆瓣读书-文学-名著的封面

    获取至少两个页面的豆瓣读书-文学-名著的图书封面图片,将图片存到文件夹. 具体代码如下: #dubanimage.py import requests from bs4 import Beautifu ...

  6. Python爬虫 爬取豆瓣电影TOP250

    Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...

  7. python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中

    我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...

  8. Python爬虫爬取豆瓣电影评论内容,评论时间和评论人

    Python爬虫爬取豆瓣电影评论内容,评论时间和评论人 我们可以看到影评比较长,需要展开才能完整显示.但是在网页源码中是没有显示完整影评的.所以我们考虑到这部分应该是异步加载的方式显示.所以打开网页的 ...

  9. 基于Python,爬取豆瓣读书源码

    记得上次分享了一个抓取豆瓣妹子美女图片的脚本,今天给大家分享一个爬取豆瓣读书的源码,也算是做个记录吧,目前已经在学习编程的路上,以后要是想写什么爬虫也可以参考参考自己收藏的一些代码,嗯,虽然我还是个代 ...

最新文章

  1. 零基础Java学习之final关键字
  2. iOS 11开发教程(二)编写第一个iOS 11应用
  3. Spring Cloud Zuul中使用Swagger汇总API接口文档
  4. 安装iis 配置iis
  5. 用再生龙Clonezilla 来克隆Linux系统!!
  6. 转帖:ESB(Enterprise Service Bus)
  7. undo log mysql_MySQL的redo log与undo log
  8. win10禁用计算机维护,win10哪些服务可以禁用 服务哪些可以禁止启动
  9. Autofac 依赖注入框架 使用
  10. 金狮加密视频播放器破解翻录限制转换为mp4工具使用教程
  11. android epson wifi,epson投影仪无线投屏怎么连接手机、电脑
  12. 高德地图 根据经纬度获取地理位置信息
  13. 苹果手机上网速度慢_人群中手机网速不好,怎么办?
  14. dnf超时空漩涡副本路线流程图_dnf怎么打超时空漩涡 dnf超时空漩涡打法攻略
  15. Spring boot再来一遍
  16. 为什么要选择双线虚拟主机?
  17. response.buffer用法
  18. 田野调查手记·浮山摩崖石刻(八)
  19. 基于51单片机的水族箱温度水质监测智能宠物金鱼喂食器补氧换水proteus仿真原理图
  20. 扶持初创企业成长 佳能再度携手优客工场升级轻松办公新体验

热门文章

  1. 产品设计过程中的沉没成本和禀赋效应
  2. VR头戴显示器对健康有害吗?会引发晕动症、视觉辐辏调节冲突
  3. Vosk可以用于Unity的离线语音识别
  4. icc校色文件使用教程_Windows7色彩管理显示器ICC设置方法
  5. ISO26262解析(四)——FMEDA
  6. win10键盘全变成快捷键_(安卓)全键盘快捷键
  7. 为什么ArrayList查询效率高,删除效率慢
  8. 【论文阅读一】Adaptive Cross-Modal Few-shot Learning
  9. linux 内存清理 释放命令,linux 内存清理/释放命令总结
  10. 软件工程——系统流程图符号及案例