python爬取豆瓣读书top250并保存xls(含源码)
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(含源码)相关推荐
- python爬取豆瓣读书top250
python爬取豆瓣读书top250,并保存在本地. 分别用requests+re.requests+xpath 完成 1.requests + re import requests import r ...
- [爬虫系列(二)]爬取豆瓣读书Top250,并保存每本书
这里我们要爬起豆瓣读书Top250,并保存每本书的书名,信息,简要介绍和作者信息. 这里,仍然分为三步: 1.url分析 2.数据分析 3.爬取数据 1.url分析 豆瓣读书Top250的ur ...
- python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel
douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...
- Python爬取豆瓣读书Top250(正则表达式)
# -*- coding = utf-8 -*- #导入所需库 from bs4 import BeautifulSoup import re import xlwt import urllib.re ...
- python爬取豆瓣电影top250并保存为xlsx_Python 爬虫 存储Excel - 豆瓣电影Top250
from bs4 import BeautifulSoup #网页解析,获取数据 import re #正则表达式,进行文字匹配 import urllib.request,urllib.error ...
- python爬取豆瓣电影top250并保存为xlsx_python 爬虫获取豆瓣电影排行榜前250并写入excel...
豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https://movie.douban.com/top250?sta ...
- python爬虫爬取豆瓣读书Top250
python爬虫爬取豆瓣读书Top250 话不多说,直接上代码! from urllib.request import urlopen, Request from bs4 import Beautif ...
- 使用python的scrapy框架简单的爬取豆瓣读书top250
使用python的scrapy框架简单的爬取豆瓣读书top250 一.配置scrapy环境 1. 配置相应模块 如果没有配置过scrapy环境的一般需要安装lxml.PyOpenssl.Twisted ...
- 利用python爬取豆瓣电影top250
利用python爬取豆瓣电影top250: 注:本内容只是作为个人学习记录 1.业务分析 进入网页https://movie.douban.com/top250 可以看见每部电影都呈现在眼前,点击电影 ...
最新文章
- 亚信安全服务器深度安全防护系统中标“世界最长”的城轨网络
- 干货丨浅析分布式系统(经典长文,值得收藏)
- 网路游侠:日志审计系统与SOC的区别
- 荷兰版手工耿手挖8小时沼气,让自制摩托车不花1毛钱飞驰20公里
- php 单选按钮选中的值,在javascript中根据单选按钮选择更改变量值
- unity热更新json_Unity3D热更新 CSHotFix入门教程之HelloWorld
- 后端必备的200本书,一次性给你!
- SharePoint 2010: 设计BCS工作流
- officeopenxml excelpackage 需要安装excel嘛_使用ABAP操作Excel的几种方法
- 企业微信怎么删除好友 企业微信如何删除成员
- 解决服务器上的水晶报表工具栏无法正常显示
- gis 空间分析 鸟类栖息地选取_鸟类的栖息地选择
- 【数学建模】2016年全国大学生数学建模-系泊系统全面解析(附MATLAB实现部分代码)
- oracle字段类型number默认值,Oracle 字段类型 | 学步园
- Echarts图表之堆积柱形图
- 关于被3个搞物理的“颠覆”了且数学天才陶哲轩“开始压根不相信”的数学常识的算法实现与理解
- 5、异步流(Asynchronous Flow)
- Linux快速入门之 静态库和动态库 (07)
- keil 4c语言读写寄存器,【STM32单片机学习】第四课:GPIO控制LED(用寄存器编程)
- linux 设置默认播放设备,Ubuntu MATE 19.10采用GNOME MPV(Celluloid)做为默认媒体播放器...
热门文章
- 神经网络数学建模怎么算,神经网络数学建模论文
- 关于“Microsoft office word 遇到问题需要关闭”解决方法
- 如何破解电脑开机密码
- 5的五次方怎计算机,学生专用计算器怎么开5次方
- springboot easypoi 报错The bean ‘beanNameViewResolver‘, defined in class path resource [cn/afterturn/e
- 【目标检测】DetectoRS
- 滴滴攻打美团外卖,外卖“护城河”轻易被攻破的背后
- Android视频开发进阶-关于视频的那些术语,android软件开发计算器
- android 圆盘按钮
- Data Protector