一个简单的爬取豆瓣最受关注图书榜的小爬虫,在爬取相关信息后,将结果保存在 mongo 中

整个流程分为以下几步:

(1)构造url

(2)分析网页

(3)编写程序,提取信息

解析,将分别介绍以上几步

一 构造url

首先打开网页,可以看到下面的图片

从图片中,可以看到其分为虚构类作品榜和非虚构类作品榜两个榜单,分别点击这两个榜单,可以看到其下面的变化

非虚构类作品榜:

虚构类作品榜:

因此,根据这两个变化,可以构造相应的榜单的 url。

接下来分析,源代码页面

二 分析网页

分析源代码页面,可以看到,每一本书的信息,都是包含在

 <li class="media clearfix">

标签中的,如图

因此,便可以提取对应的信息了

三 编写程序,提取信息
经过上面的分析,便可以编写程序,提取信息了。源码如下:
import requests
from pyquery import PyQuery as pq
import pymongoclient = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['douban']
collection = db['douban']def html_get(url_start, key_list):for keyword in key_list:       #构造urlurl = url_start + keywordheaders={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',\'Accept-Encoding':'gzip, deflate, sdch, br',\'Accept-Language':'zh-CN,zh;q=0.8',\'Cache-Control':'max-age=0',\'Connection':'keep-alive',\'Cookie':'ll="129059"; bid=LGKvV4eiPRY; gr_user_id=5e12d333-3fef-4dec-9a13-492827d22a9f; __yadk_uid=mdRyurjdvN9YpaTediph1fGvXm5kFwDv; _pk_ref.100001.3ac3=%5B%22%22%2C%22%22%2C1530035830%2C%22http%3A%2F%2Fwww.so.com%2Flink%3Fm%3DatcFavfrIqqbjFSuBtImGs6LQuG1bzV%252BwXIUv9RvMyu76xYAgQ1zKuR6VXzhExd6NGqKRNCgBJUSrQwjAFlBd9UixoDzpOIwO%22%5D; Hm_lvt_16a14f3002af32bf3a75dfe352478639=1530035976; Hm_lpvt_16a14f3002af32bf3a75dfe352478639=1530035976; viewed="30155720_26830570_30230525"; gr_session_id_22c937bbd8ebd703f2d8e9445f7dfd03=62136c96-12c5-410f-975e-954ef37fe69b_true; _vwo_uuid_v2=DB79F3914C55D5BDCBACD8F77796784E0|a988dff47123f572c5efd29563436c85; _pk_id.100001.3ac3=bca92b247691e53a.1529798027.2.1530037201.1529798070.; _pk_ses.100001.3ac3=*; __utma=30149280.317649996.1529798022.1529798022.1530035826.2; __utmb=30149280.29.10.1530035826; __utmc=30149280; __utmz=30149280.1530035826.2.2.utmcsr=so.com|utmccn=(referral)|utmcmd=referral|utmcct=/link; __utma=81379588.1306981855.1529798027.1529798027.1530035830.2; __utmb=81379588.29.10.1530035830; __utmc=81379588; __utmz=81379588.1530035830.2.2.utmcsr=so.com|utmccn=(referral)|utmcmd=referral|utmcct=/link; ap=1',\'Host':'book.douban.com',\'Referer':'https://book.douban.com/chart?subcat=F',\'Upgrade-Insecure-Requests':'1',\'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',}try:                                                  r = requests.get(url, headers=headers)  #请求网页html = r.textexcept:print('error')else:html_parse(html)         #调用提取信息的函数def html_parse(html):item = {}doc = pq(html)for media in doc.find('.media').items():   #提取信息item = {'book_name': media.find('h2').text(),'abstract': media.find('.subject-abstract').text(),'score': media.find('.font-small').text(),'score_people': media.find('.ml8').text().replace('(','').replace(')',''),}save_to_mongo(item)         #调用存储函数def save_to_mongo(item):collection.insert(item)         #存储信息def main():url_start = 'https://book.douban.com/chart?subcat='kwy_list = ['I','F']           #关键词html_get(url_start, key_list)client.close()if __name__ == '__main__':main()

python爬虫 — 爬取豆瓣最受关注图书榜相关推荐

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

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

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

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

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

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

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

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

  5. Python爬虫爬取豆瓣电影Top250

    爬虫爬取豆瓣Top250 文章目录 爬虫爬取豆瓣Top250 完整代码 第一步获取整个网页并以html来解析 正则表达式来匹配关键词 所有信息写入列表中 存入Excel中 效果如图 本文学习自B站UP ...

  6. python爬虫爬取豆瓣图书

    爬取豆瓣图书top250的第一页 我最终爬取的是图书的书名,链接 先要做个说明,如果你是编程高手的话,这边文章你就不用看了,如果你是个python爬虫小白的话,可以看看这篇原创 我将用到的软件是pyc ...

  7. 用Python爬虫爬取豆瓣电影、读书Top250并排序

    更新:已更新豆瓣电影Top250的脚本及网站 概述 经常用豆瓣读书的童鞋应该知道,豆瓣Top250用的是综合排序,除用户评分之外还考虑了很多比如是否畅销.点击量等等,这也就导致了一些近年来评分不高的畅 ...

  8. python|爬虫|爬取豆瓣自己账号下的观影记录并可视化

    提示:可以使用anaconda 创建爬虫专用的环境,再从pycharm里新建工程添加虚拟环境 文章目录 前言 一.准备部分 1. 程序思路 二. 代码部分 2.1 导入库 2.2 登陆豆瓣(selen ...

  9. python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

最新文章

  1. CBitmapButton的使用(转)
  2. 12,matlab中数据标记点选项参数,颜色 选项是参数,线性选项参数
  3. 转:58到家数据库30条军规解读
  4. iOS 8 UITableView分隔符插入0不起作用
  5. Android 计算Bitmap大小
  6. python把数据写入excel_Python向excel中写入数据的方法
  7. HDU 4383 To The Moon 解题报告
  8. 8客户端安装后无法启动_QQ下载几天后无法启动、无法运行——可能与火绒有关...
  9. Java使用融云SDK,推送聊天信息
  10. 网页局部打印以及如何设置打印机纸张大小
  11. 一次泛微OA宕机事件的解决。
  12. MOD函数的使用方法
  13. docker镜像的获取删除和查看镜像信息历史记录清理残余镜像
  14. Latex设置指定区域的行距
  15. APS系统六大要素是什么?企业导入APS(高级生产计划与排程)有哪些好处?
  16. python内置容器--元组,字典与集合
  17. 用前沿区块链技术为“元宇宙”筑底
  18. win10 升级到21H1 后Thinkpad X系列本本 音频驱动 没有声音
  19. 信息系统安全实验——Week 8
  20. oca认证_OCA第2部分中的Java难题

热门文章

  1. RabbitMQ实战指南之RabbitMQ架构及运转流程
  2. Python输出菱形图案
  3. Python 自动化办公-玩转 Word
  4. NOIP提高组 单峰
  5. add as library是什么?有什么用?如何打开?
  6. 深入理解地址翻译 CSAPP
  7. 简单的RTSP播放器
  8. C语言求田径场周长和面积,田径场尺寸计算及画法
  9. PMP项目管理学习总结,建议收藏
  10. R语言也可以进行ATAC数据的完整分析啦!