python爬虫 — 爬取豆瓣最受关注图书榜
一个简单的爬取豆瓣最受关注图书榜的小爬虫,在爬取相关信息后,将结果保存在 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爬虫 — 爬取豆瓣最受关注图书榜相关推荐
- Python爬虫 爬取豆瓣电影TOP250
Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...
- python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中
我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...
- Python爬虫爬取豆瓣电影评论内容,评论时间和评论人
Python爬虫爬取豆瓣电影评论内容,评论时间和评论人 我们可以看到影评比较长,需要展开才能完整显示.但是在网页源码中是没有显示完整影评的.所以我们考虑到这部分应该是异步加载的方式显示.所以打开网页的 ...
- python爬虫爬取豆瓣读书Top250
python爬虫爬取豆瓣读书Top250 话不多说,直接上代码! from urllib.request import urlopen, Request from bs4 import Beautif ...
- Python爬虫爬取豆瓣电影Top250
爬虫爬取豆瓣Top250 文章目录 爬虫爬取豆瓣Top250 完整代码 第一步获取整个网页并以html来解析 正则表达式来匹配关键词 所有信息写入列表中 存入Excel中 效果如图 本文学习自B站UP ...
- python爬虫爬取豆瓣图书
爬取豆瓣图书top250的第一页 我最终爬取的是图书的书名,链接 先要做个说明,如果你是编程高手的话,这边文章你就不用看了,如果你是个python爬虫小白的话,可以看看这篇原创 我将用到的软件是pyc ...
- 用Python爬虫爬取豆瓣电影、读书Top250并排序
更新:已更新豆瓣电影Top250的脚本及网站 概述 经常用豆瓣读书的童鞋应该知道,豆瓣Top250用的是综合排序,除用户评分之外还考虑了很多比如是否畅销.点击量等等,这也就导致了一些近年来评分不高的畅 ...
- python|爬虫|爬取豆瓣自己账号下的观影记录并可视化
提示:可以使用anaconda 创建爬虫专用的环境,再从pycharm里新建工程添加虚拟环境 文章目录 前言 一.准备部分 1. 程序思路 二. 代码部分 2.1 导入库 2.2 登陆豆瓣(selen ...
- python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...
最新文章
- CBitmapButton的使用(转)
- 12,matlab中数据标记点选项参数,颜色 选项是参数,线性选项参数
- 转:58到家数据库30条军规解读
- iOS 8 UITableView分隔符插入0不起作用
- Android 计算Bitmap大小
- python把数据写入excel_Python向excel中写入数据的方法
- HDU 4383 To The Moon 解题报告
- 8客户端安装后无法启动_QQ下载几天后无法启动、无法运行——可能与火绒有关...
- Java使用融云SDK,推送聊天信息
- 网页局部打印以及如何设置打印机纸张大小
- 一次泛微OA宕机事件的解决。
- MOD函数的使用方法
- docker镜像的获取删除和查看镜像信息历史记录清理残余镜像
- Latex设置指定区域的行距
- APS系统六大要素是什么?企业导入APS(高级生产计划与排程)有哪些好处?
- python内置容器--元组,字典与集合
- 用前沿区块链技术为“元宇宙”筑底
- win10 升级到21H1 后Thinkpad X系列本本 音频驱动 没有声音
- 信息系统安全实验——Week 8
- oca认证_OCA第2部分中的Java难题