**蒟蒻的第一次豆瓣读书爬虫实践**

功能:豆瓣读书的指定类别下的所有书籍的详细信息,同时将他们写入txt文件中存储
主要通过requests,BeautyfulSoup实现

话不多说,直接上代码。

#导入requests、BeautyfulSoup库
import requests
from bs4 import BeautifulSoup#获得网页html
def GetHTML(url):header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'}try:r = requests.get(url,headers = header)r.raise_for_status()r.encoding = 'UTF-8'return r.textexcept:return ""#获得每本书的信息列表集合
def GetList(url,lis):html = GetHTML(url)soup = BeautifulSoup(html, 'html.parser')c = soup.find_all('li',attrs = {'class':['subject-item']})for i in c:a_book = {}a_book['书名'] = i.h2.a.attrs['title']if i.h2.find_all(attrs = {'style':['font-size:12px;']}):a_book['书名'] = a_book['书名'] + i.h2.find(attrs = {'style':['font-size:12px;']}).stringif i.find(attrs = {'class':['rating_nums']}):a_book['评分'] = i.find(attrs = {'class':['rating_nums']}).stringif a_book['评分'] == None:a_book['评分'] = '暂无评分'else:a_book['评分'] = '评价人数少,无法统计评分'if  i.find('p'):a_book['简介'] = i.find('p').stringelse:a_book['简介'] = '暂无简介'a_book['出版信息'] = i.find(attrs = {"class":['pub']}).string.strip()a_book['评论量'] = i.find(attrs = {'class':['pl']}).string.strip()[1:-1]if i.find(attrs = {'class':['buy-info']}):a_book['书籍链接'] = i.find(attrs = {'class':['buy-info']}).a.attrs['href']elif i.find(attrs = {'class':['market-info']}):a_book['书籍链接'] = i.find(attrs = {'class':['market-info']}).a.attrs['href']else:a_book['书籍链接'] = '暂无销售'lis.append(a_book)#将爬取的信息存储到txt文件中去
def WriteToTxt(lis):file = open('D:\\a.txt','w',encoding='utf-8')for i in range(len(lis)):file.write(str(i + 1) + ": ")file.write("书名 :" + lis[i]['书名'] + '\n')file.write("简介:" + lis[i]['简介'] + '\n')file.write("评分:" + lis[i]['评分'] + '\n')file.write("出版信息:" + lis[i]['出版信息'] + '\n')file.write("评论量:" + lis[i]['评论量'] + '\n')file.write("书籍链接:" + lis[i]['书籍链接'] + '\n')file.write('\n')file.close()def GetPagenum(url):html = GetHTML(url)soup = BeautifulSoup(html, 'html.parser')a = soup.find('div',attrs={'class':["paginator"]})b = a.find_all('a')lis = []for i in b:lis.append(i.string)pagenum = lis[-2]return pagenum#爬取的书籍类型type(小说、外国文学、文学、经典、
#中国文学、随笔、日本文学、散文、村上春树、诗歌、童话、名著、儿童文学、古典文学、余华、王小波、杂文、当代文学、张爱玲、外国名著、钱钟书、鲁迅、诗词、茨威格、米兰·昆德拉、杜拉斯、港台、
#流行类
#漫画、推理、绘本、东野圭吾、青春、悬疑、科幻、言情、推理小说、奇幻、武侠、日本漫画、耽美、网络小说、韩寒、科幻小说、三毛、亦舒、阿加莎·克里斯蒂、金庸、安妮宝贝、穿越、郭敬明、轻小说、魔幻、青春文学、几米、J.K.罗琳、
#幾米、张小娴、校园、古龙、高木直子、沧月、余秋雨、落落、文化历史、心理学、哲学、社会学、传记、文化、艺术、社会、政治、设计、政治学、宗教、建筑、电影、数学、中国历史、回忆录、思想、国学、人物传记、艺术史、人文、音乐、绘画、
#戏剧、西方哲学、近代史、二战、军事、佛教、考古、自由主义、美术
#生活类
#爱情、成长、生活、旅行、心理、女性、励志、摄影、教育、职场、美食、游记、灵修、健康、情感、人际关系、两性、养生、手工、家居、自助游、
#经管类
#经济学、管理、经济、商业、金融、投资、营销、理财、创业、股票、广告、企业史
#策划类
#科普、互联网、科学、编程、交互设计、算法、用户体验、科技、web、交互、通信、UE、神经网络、UCD、程序)
type = "历史"
#type可以更换成以上任意关键词
lis = []
pagenum = 0
pagenum = GetPagenum("https://book.douban.com/tag/" + type + "?start=0&type=T")
for i in range(int(pagenum)):start_url = "https://book.douban.com/tag/" + type + "?start=" + str(i * 20) + "&type=T"GetList(start_url, lis)
WriteToTxt(lis)
for i in range(len(lis)):print(str(i+1) + ": ",end='')print(lis[i])

由于第一次进行操作,没有注意到使用随机UA,陷入了反爬机制,吸取教训。

欢迎各位共同交流,学习,进步!

未经允许,禁止转载使用!

蒟蒻的第一次豆瓣读书爬虫实践相关推荐

  1. python爬虫(案例)——豆瓣读书爬虫

    文章目录 要爬取的内容 一级页面(分类中图书的列表) 二级页面(每本书的详情页) 本案例中的防封ip小技巧 多用几个user-agent(随机抽取) 设置间隔时间 完整代码 本篇文章为豆瓣读书爬虫的案 ...

  2. 2020/04/12 02-HTML和URL提取、豆瓣读书爬虫编写

    scrapy提供了大量的脚手架,其实要写的部分都可以通过脚手架来完成 先是创建一个项目,明确爬取目标 这是项目里需要配置的东西 首先要配置user-agent和robotstxt协议改成false,不 ...

  3. python爬虫教程书籍-Python爬虫教程-爬取豆瓣读书

    豆瓣读书爬虫 Python所写,豆瓣读书的爬虫,方便大家搜罗各种美美书! 写在前面 通过豆瓣评分和评价人数等规则,可非常好的探索挖掘经典图书和隐藏好书,从中更高效地汲取书中智慧. 实现功能 1 可以爬 ...

  4. 蒟蒻的HNOI2017滚粗记

    蒟蒻的第一次省选,然而并没有RP爆发... Day 1: 8:00开考,(然而密码错误是什么鬼).跌跌撞撞,8:40终于拿到纸质试题. { T1:作为一名没有学过Splay的蒟蒻,考场上真的被出题人感 ...

  5. Requests爬虫实践:豆瓣读书Top250数据

    Requests爬虫实践:豆瓣读书Top250数据 本次的实践项目是爬取豆瓣读书Top250的书籍名称和网页地址 参考书籍:<Python网络爬虫从入门到实践> 书中爬的是电影数据,自己想 ...

  6. python爬虫慕课网利用xpath_python爬虫实践——零基础快速入门(二)爬取豆瓣电影...

    爬虫又称为网页蜘蛛,是一种程序或脚本. 但重点在于,它能够按照一定的规则,自动获取网页信息. 爬虫的基本原理--通用框架 1.挑选种子URL: 2.讲这些URL放入带抓取的URL列队: 3.取出带抓取 ...

  7. 爬虫初探:把豆瓣读书主页上书的URL、书名、作者、出版时间、出版社全部爬下来

    import requests import re #进入豆瓣读书主页,把网页源代码打出来 content = requests.get('https://book.douban.com/').tex ...

  8. Python爬虫(5):豆瓣读书练手爬虫

    Python爬虫(5):豆瓣读书练手爬虫 我们在之前的文章中基本上掌握了Python爬虫的原理和方法,不知道大家有没有练习呢.今天我就来找一个简单的网页进行爬取,就当是给之前的兵书做一个实践.不然不就 ...

  9. 利用免费工具爬取关键词(数据)的豆瓣读书数据——八爪鱼爬取数据并导出到Excel/Mysql数据库设置示例——关键词:爬虫、读书、实用

    目录 原始需求 需求解读 所需软件配置 软件介绍 八爪鱼 Excel Navicat Mysql 数据采集及保存 步骤1  探索搜索页面规律 步骤二  八爪鱼批量生成链接,添加参数(前缀+尾巴) 步骤 ...

  10. 爬虫练习:爬豆瓣读书的短评

    爬虫练习:爬豆瓣读书的短评 利用第三方库requests爬取网页内容,然后利用BeautifulSoup解析网页内容,得到我们想要的数据. 任务1:爬豆瓣读书<下町火箭>的短评. 利用re ...

最新文章

  1. Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.
  2. 在python中查看关键字需要在python解释器中执行_现有代码 d={},在Python3解释器中执行 d[([1,2])] = 'b'得到的结果为( )。...
  3. [hadoop源码阅读][6]-org.apache.hadoop.ipc-ipc总体结构和RPC
  4. 任务发布页面html,HTML5 Todo List(待办事项/任务列表管理界面)
  5. GFS分布式文件系统简介及部署——让存储变得更高级
  6. 企业巧妙运用飞秋提高工作效率
  7. 6.HBase时髦谨慎财会会计
  8. 使用haproxy做负载均衡时保持客户端真实的IP
  9. Linux C语言解析 yaml,c – 用yaml cpp解析yaml
  10. spring boot区分生产环境和开发环境
  11. css 日语字体,css字体
  12. 精选1000个机械原理动图
  13. 2022高频经典前端面试题(html+css+js上篇,含答案)
  14. 程序员的转正述职报告
  15. post入门篇:请求头/响应头、cookie、URL结构/编码、数据编码、winHttpRequest、post分析技巧、伪装IP
  16. VUE DEMO 之模拟登录 个人中心页面之间数据传值
  17. diy 单片机 自动浇花_基于单片机的自动浇花系统的设计
  18. win7 简易版升级旗舰版
  19. 计算机网络(六):链路层
  20. 行为金融(五):非有效市场

热门文章

  1. 爬虫-python(三) 百度搜索关键词后爬取搜索结果
  2. 我们把计算机硬件系统和软件系统称为,中国大学MOOC:\我们把计算机硬件系统和软件系统总称为( )。\;...
  3. 远程桌面连接命令“Mstsc”,Windows系统连接远程方法
  4. 计算机科学 加州研究生,加州大学洛杉矶分校计算机科学研究生学制几年?
  5. 全民一起玩Python 之 基础篇视频教程
  6. CAD2018下载AutoCAD2018下载AutoCAD2018安装详细教程
  7. Selenium学习笔记
  8. texmacs 源码安装
  9. 关于Landsat所有知识都在这里
  10. 宝塔面板ab模板建站_2020PHP自助建站系统源码/宝塔在线自助建站系统源码/集成多套模板/在线云建站系统模板...