使用python的scrapy框架简单的爬取豆瓣读书top250
使用python的scrapy框架简单的爬取豆瓣读书top250
一、配置scrapy环境
1. 配置相应模块
如果没有配置过scrapy环境的一般需要安装lxml、PyOpenssl、Twisted、Pywin32、scrapy这几样模块,都可以
pip install *方式安装,如pip install lxml。
2. **测试是否安装成功 **
直接在cmd输入scrapy,出现版本号就说明安装成功
二、爬虫项目
下面就直接开始爬取
1.创建项目scrapy startproject douban_book
这个就是创建好的scrapy文件
2.创建爬虫scrapy genspider douban_book_spider book.douban.com
“book.douban.com”是目标域
3.明确目标
就是我们要确定我们需要爬那些目标资源(红框的是本次项目要的资源)
然后在items.py中明确
class DoubanBookItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()# 图片链接img_url = scrapy.Field()# 书名book_name = scrapy.Field()# 书本具体信息specific_information = scrapy.Field()# 评星star_num = scrapy.Field()# 多少人评价people_num = scrapy.Field()# 描述describe = scrapy.Field()
4.爬虫逻辑
setting.py文件配置
在文件添加user_agent
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'
编写douban_book_spider.py
class DoubanBookSpiderSpider(scrapy.Spider):name = 'douban_book_spider'allowed_domains = ['book.douban.com']start_urls = ['https://book.douban.com/top250']def parse(self, response):print(response.text)
测试是否有返回值
在cmd输入scrapy crawl douban_book_spider
这样说明有返回值了
在douban_book_spider.py编写xpath逻辑
定位到涵盖这页的所有书的html的地方
以此为基础xpath
//div[@class=‘indent’]//table
在基础xpath下找到图片的链接
.//tr[@class=‘item’]//td//a[@class=‘nbg’]//img/@src
其他元素同理
class DoubanBookSpiderSpider(scrapy.Spider):name = 'douban_book_spider'allowed_domains = ['book.douban.com']start_urls = ['https://book.douban.com/top250']global thispagedef parse(self, response):book_list = response.xpath("//div[@class='indent']//table")for item in book_list:book_item = DoubanBookItem()book_item['img_url'] = item.xpath(".//tr[@class='item']//td//a[@class='nbg']//img/@src").extract_first()book_item['book_name'] = item.xpath(".//tr[@class='item']//td[2]//div[@class='pl2']//a/@title").extract_first()book_item['specific_information'] = item.xpath(".//tr[@class='item']/td[2]/p[@class='pl']/text()").extract_first()book_item['star_num'] = item.xpath(".//tr[@class='item']/td[2]/div[@class='star clearfix']/span[2]/text()").extract_first()people_num = item.xpath(".//tr[@class='item']/td[2]/div[@class='star clearfix']/span[3]/text()").extract_first()book_item['people_num'] = people_num.replace(" ", "")book_item['describe'] = item.xpath(".//tr[@class='item']/td[2]/p[@class='quote']/span/text()").extract_first()yield book_item
每一次分页都是“后页”,最后一页就“后页”不能点击,所以可以从这里试一下
这是第一页,后页是有链接的
这是最后一页,后页是没有链接的
所以判断“后页”有没有链接,如果有就回调,继续爬,没有就结束
class DoubanBookSpiderSpider(scrapy.Spider):name = 'douban_book_spider'allowed_domains = ['book.douban.com']start_urls = ['https://book.douban.com/top250']global thispagedef parse(self, response):book_list = response.xpath("//div[@class='indent']//table")for item in book_list:book_item = DoubanBookItem()book_item['img_url'] = item.xpath(".//tr[@class='item']//td//a[@class='nbg']//img/@src").extract_first()book_item['book_name'] = item.xpath(".//tr[@class='item']//td[2]//div[@class='pl2']//a/@title").extract_first()book_item['specific_information'] = item.xpath(".//tr[@class='item']/td[2]/p[@class='pl']/text()").extract_first()book_item['star_num'] = item.xpath(".//tr[@class='item']/td[2]/div[@class='star clearfix']/span[2]/text()").extract_first()people_num = item.xpath(".//tr[@class='item']/td[2]/div[@class='star clearfix']/span[3]/text()").extract_first()book_item['people_num'] = people_num.replace(" ", "")book_item['describe'] = item.xpath(".//tr[@class='item']/td[2]/p[@class='quote']/span/text()").extract_first()yield book_itemnext = response.xpath(".//div[@class='indent']/div[@class='paginator']/span[@class='next']/a/@href").extract_first()if next:yield scrapy.Request(next, callback=self.parse)
至此250本书的信息就爬下来了!
使用python的scrapy框架简单的爬取豆瓣读书top250相关推荐
- 爬虫项目实操三、用scrapy框架爬取豆瓣读书Top250的书名,出版信息和评分
安装方法:Windows:在终端输入命令:pip install scrapy:mac:在终端输入命令:pip3 install scrapy,按下enter键,再输入cd Python,就能跳转到P ...
- python爬虫爬取豆瓣读书Top250
python爬虫爬取豆瓣读书Top250 话不多说,直接上代码! from urllib.request import urlopen, Request from bs4 import Beautif ...
- python爬取豆瓣读书top250并保存xls(含源码)
python爬取豆瓣读书top250并保存xls(含源码) 又是霍霍豆瓣的一天O(∩_∩)O哈哈~. 目标网站:http://book.douban.com/top250/ 全军出击!!! 首先,按下 ...
- python爬取豆瓣读书top250
python爬取豆瓣读书top250,并保存在本地. 分别用requests+re.requests+xpath 完成 1.requests + re import requests import r ...
- 一看就会的20行代码爬取豆瓣读书Top250
想入门Python爬虫,大家都喜欢拿爬取豆瓣读书Top250为例子来练手. 下面我就给大家分享一个简单的爬虫. 1.确定所需库 首先我们要确定需要引入的库. 要爬取网页的数据,当然要发送请求啦,所以我 ...
- 使用Xpath语法爬取豆瓣读书Top250
使用Xpath语法爬取豆瓣读书Top250(csv存取数据) 使用的软件是Spyder 网页地址:https://book.douban.com/top250?start=0 直接上代码: 建议大家从 ...
- 爬取豆瓣读书Top250,导入sqlist数据库(或excel表格)中
爬取豆瓣读书Top250,导入sqlist数据库(或excel表格)中 获取源代码请访问https://github.com/zhang020801/douban_bookTop250 一.程序源代码 ...
- 使用Requests和Lxml库,爬取豆瓣读书TOP250
from lxml import etree import requests import csv #导入需要的库fp = open('C://Users/Administrator/Desktop/ ...
- [爬虫系列(二)]爬取豆瓣读书Top250,并保存每本书
这里我们要爬起豆瓣读书Top250,并保存每本书的书名,信息,简要介绍和作者信息. 这里,仍然分为三步: 1.url分析 2.数据分析 3.爬取数据 1.url分析 豆瓣读书Top250的ur ...
最新文章
- .net mysql中文乱码解决办法
- Git Proxy开关
- 怎么用计算机计算年月份,如何使用Excel计算两个日期之间的月数?
- STM32工作笔记006---常见硬件介绍-以及常见术语--随时更新
- 面向模式的分析和设计(POAD)
- MFC输出EXCEL文档的过程总结
- MySQL 入门(三)—— MySQL数据类型
- 保证接口数据安全的10种方案
- linux的ip是什么,Linux-IP地址后边加个/8(16,24,32)是什么意思?
- JavaScript三种弹出框(alert、confirm、prompt),一次性全弄清!
- nvivo服务器项目,【NVivo教程】用Nvivo为研究团队设立主项目
- android原生坐标系,经纬度查寻地图位置,坐标系在线互转
- 开源生物特征识别库 OpenBR
- Three.js光源梳理3——平行光(DirectionalLight)
- python修改悦跑圈数据_悦跑圈数据导出 悦跑圈新版本支持跑表、跑步机数据接入 - 电脑常识 - 服务器之家...
- SpringBoot整合Keycloak实现单点登录
- 学生体育运动主题网页设计——兵乓球国乒网(纯HTML+CSS代码)
- 不会这 9 种常用的软件工具!你敢说你会网络安全?
- 创业时代,喔,创业时代,有一点可爱有一点呆
- 函数《潭州学院(心蓝)》
热门文章
- MNE读取竞赛数据集gdf格式脑电数据,并简单可视化
- 从找书到笔记整理,这些工具助力你完成高效阅读
- 2023上半年软件设计师-试题详解与分析
- IBinder转换为BpBinder
- 中国联通短信网关接入程序源代码(SGIP1.2协议)
- 软考必过 - 系统架构师 - 企业信息化与战略规划
- discuz教程,分享本地附件转远程附件和远程附件转本地附件的SQL代码
- u盘锁计算机,U盘开启电脑“密码锁”逆天功能
- 2023计算机毕业设计选题一定要注意这几点-计算机专业毕业设计题目参考推荐
- ITOP4412开发板之声卡测试