python爬虫爬取豆瓣读书Top250

话不多说,直接上代码!

from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
import randomclass DBTop250_Spider():url = r"http://book.douban.com/top250?start="page_num = 0top_num = 1headers = [{'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0'},{'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'},{'User-Agent': 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 ''Safari/535.11'},{'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)'},{'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0'},{'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu ''Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36'}]file_path = "..\Files\Books"def Parse_Page(self):req = Request(self.url+str(self.page_num * 25), headers=random.choice(self.headers))page = urlopen(req).read()bsObj = BeautifulSoup(page, "html.parser")books_items = bsObj.find_all("a")for item in books_items:if 'title' in item.attrs:self.Parse_Book(item.attrs['href'])self.top_num += 1self.page_num += 1def Parse_Book(self, book_url):print("book_url is: " + book_url)try:book_request = Request(book_url, headers=random.choice(self.headers))book_html = urlopen(book_request).read()book_bsObj = BeautifulSoup(book_html, "html.parser")book_title = book_bsObj.h1book_info = book_bsObj.find("div", {"id": "info"})intro = book_bsObj.find_all("div", {"class": "intro"})if intro[0].get_text().find("展开全部") != -1:book_intro = intro[1]if intro[2].get_text().find('展开全部') != -1:author_intro = intro[3]else:author_intro = intro[2]else:book_intro = intro[0]if intro[1].get_text().find('展开全部') != -1:author_intro = intro[2]else:author_intro = intro[1]with open(self.file_path + '\Top' + str(self.top_num) + '.txt', 'w', errors='ignore') as f:f.write(book_title.get_text().strip() + '\n')info_text = book_info.get_text().split(' ')for info in info_text:if info != '\n' and info != '':f.write(info.strip())f.write("\n\n内容简介: ")f.write(book_intro.get_text())f.write("\n\n作者简介: ")f.write(author_intro.get_text())except Exception as e:if hasattr(e, "reason"):print("Reason: " + e.reason)sp = DBTop250_Spider()
for i in range(1, 11):sp.Parse_Page()

运行结果:

python爬虫爬取豆瓣读书Top250相关推荐

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

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

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

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

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

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

  4. Python爬虫 爬取豆瓣读书

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

  5. python爬虫爬取豆瓣读书

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

  6. Python爬虫-爬取豆瓣读书

    爬点什么好呢?最近老是浏览豆瓣上的帖子,那就爬取下豆瓣读书吧! 网络请求,返回值是html页面. 需要对返回回来的结果进行解析.使用Beautiful Soup来解析 参见(http://beauti ...

  7. Python3之爬虫爬取豆瓣读书Top250

    import requests from bs4 import BeautifulSoup from openpyxl import Workbookexcel_name = "豆瓣读书.x ...

  8. Python 爬虫 抓取豆瓣读书TOP250

    # -*- coding:utf-8 -*- # author: yukun import requests from bs4 import BeautifulSoup# 发出请求获得HTML源码的函 ...

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

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

最新文章

  1. c++字符串拼接_Python零基础入门(三):字符串进阶
  2. c:线性表的链式表示
  3. mysql+enable+sql+log_CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置...
  4. Java怎么学?实用的学习路线图分享
  5. 一张图搞定SDF的概念
  6. Python模块(2)-Numpy 简易使用教程
  7. 在Java中==的一个坑
  8. linux基础学习2
  9. 批量自动化配置Dell服务器idrac管理口IP
  10. Excel如何在不同日期后面插入空行
  11. html线条倾斜代码,HTML5 居中斜向分割线切换的单页网页模板
  12. RAKsmart韩国服务器与日本服务器的差异
  13. 淡季来临,淘宝新开店铺该如何是好
  14. [转载]ExtJS中grid按照中文拼音首字母排序、改变行背景、列背景、静态数据分页不再困难...
  15. 基于Python实现的作家风格识别
  16. 使用一个SQL查询出每门课程的成绩都大于80分的学生姓名
  17. 【泛微表单】请假流程中计算请假时长(非系统自带考勤类型)
  18. HTML显示磁盘容量,导致:IOError:[Errno 28]设备上没有剩余空间:磁盘上有很多空间的’../results/32766.html’...
  19. 分布式多级服务器架构设计构思
  20. java计算机毕业设计ssm基于大数据的汽车流量监控cvej1(附源码、数据库)

热门文章

  1. 无线路由器WDS无线桥接设设置方法图解
  2. linux ls 显示文件年份 并支持自定义显示年月日时分秒
  3. 计算机io接口主要功能,计算机基础知识2:IO接口及电源介绍.ppt
  4. 数据库JDBC驱动下载大全
  5. (OK) 华为全网通 honor 5x - KIW-AL10-卡刷cm-13.0-20161223-NIGHTLY-kiwi.zip失败后,还原到 KIW-AL10C00B430
  6. android 打开闪光灯
  7. 身份证正反面复印简单示意图
  8. SQL索引概念(详解B+树)
  9. W78 - 999、大数据分析师认证
  10. 海南全国计算机等级考试报名时间,海南2021年3月全国计算机等级考试报名和考试时间...