python爬取豆瓣读书top250并保存xls(含源码)

又是霍霍豆瓣的一天O(∩_∩)O哈哈~。
目标网站:http://book.douban.com/top250/
全军出击!!!
首先,按下F12

可以点击左上角小按钮快速查看xpath哦

ok,开始爬虫!
首先导入库

import re
import xlwt
import requests
from bs4 import BeautifulSoup

因为xlwt和bs4不是python自带的库,所以我们要自行去cmd: pip install xlwt , pip install bs4
第二步,初始化各种信息

def getHtml(url):  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'}  page = requests.get(url,headers = headers)html =page.textreturn html

然后,写入xls的几行代码

    sheet = Workbook.add_sheet('豆瓣图书Top250')sheet.write(2,2,'书名')sheet.write(2,3,'作者')sheet.write(2,4,'译者')sheet.write(2,5,'出版单位')sheet.write(2,6,'出版时间')sheet.write(2,7,'定价')sheet.write(2,8,'豆瓣评分')sheet.write(2,9,'评价人数')sheet.write(2,10,'短评')i = 3j = 3k = 3m = 3

i,j,k,m是每次写入时位置的变量。
第三步,筛选与写入,我就不详细讲了,差不多就是从源码中的信息中使用xpath筛选出要的信息。

for page in range(0,250,25):url = 'https://book.douban.com/top250?start={0}'.format(page)html = getHtml(url)Soup = BeautifulSoup(html,'html.parser')names = Soup.find_all('div',class_ = 'pl2')for name in names:book = name.find('a')book = book.text.strip()book = book.replace(' ','')sheet.write(i,2,book)i += 1Infos = Soup.find_all('p',class_ = 'pl')for Info in Infos:r = 1authorinfo =  Info.textauthors = authorinfo.split('/')if len(authors) < 4:sheet.write(j,5,authors[0])sheet.write(j,6,authors[1])sheet.write(j,7,authors[2])j += 1continuesheet.write(j,3,authors[0])if authorinfo.count('/') == 4:sheet.write(j,4,authors[r])r += 1sheet.write(j,5,authors[r])sheet.write(j,6,authors[r+1])sheet.write(j,7,authors[r+2])j += 1rating_nums = Soup.find_all('div',class_ = 'star clearfix')for rating in rating_nums:star = rating.find_all('span')sheet.write(k,8,star[1].text)reg = r'\d+'vote = re.findall(reg,star[2].text)sheet.write(k,9,vote)k += 1quotes = Soup.find_all('p',class_ = 'quote')for quote in quotes:sheet.write(m,10,quote.text)m += 1

最后,保存并关闭xls

Workbook.save('豆瓣图书Top250.xls')

源码贴上来:

#coding=utf-8
import re
import xlwt
import requests
from bs4 import BeautifulSoupdef getHtml(url):  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'}  page = requests.get(url,headers = headers)html =page.textreturn htmlif __name__=='__main__':Workbook = xlwt.Workbook()sheet = Workbook.add_sheet('豆瓣图书Top250')sheet.write(2,2,'书名')sheet.write(2,3,'作者')sheet.write(2,4,'译者')sheet.write(2,5,'出版单位')sheet.write(2,6,'出版时间')sheet.write(2,7,'定价')sheet.write(2,8,'豆瓣评分')sheet.write(2,9,'评价人数')sheet.write(2,10,'短评')i = 3j = 3k = 3m = 3for page in range(0,250,25):url = 'https://book.douban.com/top250?start={0}'.format(page)html = getHtml(url)Soup = BeautifulSoup(html,'html.parser')names = Soup.find_all('div',class_ = 'pl2')for name in names:book = name.find('a')book = book.text.strip()book = book.replace(' ','')sheet.write(i,2,book)i += 1Infos = Soup.find_all('p',class_ = 'pl')for Info in Infos:r = 1authorinfo =  Info.textauthors = authorinfo.split('/')if len(authors) < 4:sheet.write(j,5,authors[0])sheet.write(j,6,authors[1])sheet.write(j,7,authors[2])j += 1continuesheet.write(j,3,authors[0])if authorinfo.count('/') == 4:sheet.write(j,4,authors[r])r += 1sheet.write(j,5,authors[r])sheet.write(j,6,authors[r+1])sheet.write(j,7,authors[r+2])j += 1rating_nums = Soup.find_all('div',class_ = 'star clearfix')for rating in rating_nums:star = rating.find_all('span')sheet.write(k,8,star[1].text)reg = r'\d+'vote = re.findall(reg,star[2].text)sheet.write(k,9,vote)k += 1quotes = Soup.find_all('p',class_ = 'quote')for quote in quotes:sheet.write(m,10,quote.text)m += 1Workbook.save('豆瓣图书Top250.xls')

喜欢的点赞关注哦!掰掰!

python爬取豆瓣读书top250并保存xls(含源码)相关推荐

  1. python爬取豆瓣读书top250

    python爬取豆瓣读书top250,并保存在本地. 分别用requests+re.requests+xpath 完成 1.requests + re import requests import r ...

  2. [爬虫系列(二)]爬取豆瓣读书Top250,并保存每本书

    这里我们要爬起豆瓣读书Top250,并保存每本书的书名,信息,简要介绍和作者信息.  这里,仍然分为三步:  1.url分析  2.数据分析  3.爬取数据 1.url分析 豆瓣读书Top250的ur ...

  3. python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel

    douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...

  4. Python爬取豆瓣读书Top250(正则表达式)

    # -*- coding = utf-8 -*- #导入所需库 from bs4 import BeautifulSoup import re import xlwt import urllib.re ...

  5. python爬取豆瓣电影top250并保存为xlsx_Python 爬虫 存储Excel - 豆瓣电影Top250

    from bs4 import BeautifulSoup #网页解析,获取数据 import re #正则表达式,进行文字匹配 import urllib.request,urllib.error ...

  6. python爬取豆瓣电影top250并保存为xlsx_python 爬虫获取豆瓣电影排行榜前250并写入excel...

    豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https://movie.douban.com/top250?sta ...

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

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

  8. 使用python的scrapy框架简单的爬取豆瓣读书top250

    使用python的scrapy框架简单的爬取豆瓣读书top250 一.配置scrapy环境 1. 配置相应模块 如果没有配置过scrapy环境的一般需要安装lxml.PyOpenssl.Twisted ...

  9. 利用python爬取豆瓣电影top250

    利用python爬取豆瓣电影top250: 注:本内容只是作为个人学习记录 1.业务分析 进入网页https://movie.douban.com/top250 可以看见每部电影都呈现在眼前,点击电影 ...

最新文章

  1. 亚信安全服务器深度安全防护系统中标“世界最长”的城轨网络
  2. 干货丨浅析分布式系统(经典长文,值得收藏)
  3. 网路游侠:日志审计系统与SOC的区别
  4. 荷兰版手工耿手挖8小时沼气,让自制摩托车不花1毛钱飞驰20公里
  5. php 单选按钮选中的值,在javascript中根据单选按钮选择更改变量值
  6. unity热更新json_Unity3D热更新 CSHotFix入门教程之HelloWorld
  7. 后端必备的200本书,一次性给你!
  8. SharePoint 2010: 设计BCS工作流
  9. officeopenxml excelpackage 需要安装excel嘛_使用ABAP操作Excel的几种方法
  10. 企业微信怎么删除好友 企业微信如何删除成员
  11. 解决服务器上的水晶报表工具栏无法正常显示
  12. gis 空间分析 鸟类栖息地选取_鸟类的栖息地选择
  13. 【数学建模】2016年全国大学生数学建模-系泊系统全面解析(附MATLAB实现部分代码)
  14. oracle字段类型number默认值,Oracle 字段类型 | 学步园
  15. Echarts图表之堆积柱形图
  16. 关于被3个搞物理的“颠覆”了且数学天才陶哲轩“开始压根不相信”的数学常识的算法实现与理解
  17. 5、异步流(Asynchronous Flow)
  18. Linux快速入门之 静态库和动态库 (07)
  19. keil 4c语言读写寄存器,【STM32单片机学习】第四课:GPIO控制LED(用寄存器编程)
  20. linux 设置默认播放设备,Ubuntu MATE 19.10采用GNOME MPV(Celluloid)做为默认媒体播放器...

热门文章

  1. 神经网络数学建模怎么算,神经网络数学建模论文
  2. 关于“Microsoft office word 遇到问题需要关闭”解决方法
  3. 如何破解电脑开机密码
  4. 5的五次方怎计算机,学生专用计算器怎么开5次方
  5. springboot easypoi 报错The bean ‘beanNameViewResolver‘, defined in class path resource [cn/afterturn/e
  6. 【目标检测】DetectoRS
  7. 滴滴攻打美团外卖,外卖“护城河”轻易被攻破的背后
  8. Android视频开发进阶-关于视频的那些术语,android软件开发计算器
  9. android 圆盘按钮
  10. Data Protector