使用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相关推荐

  1. 爬虫项目实操三、用scrapy框架爬取豆瓣读书Top250的书名,出版信息和评分

    安装方法:Windows:在终端输入命令:pip install scrapy:mac:在终端输入命令:pip3 install scrapy,按下enter键,再输入cd Python,就能跳转到P ...

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

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

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

    python爬取豆瓣读书top250并保存xls(含源码) 又是霍霍豆瓣的一天O(∩_∩)O哈哈~. 目标网站:http://book.douban.com/top250/ 全军出击!!! 首先,按下 ...

  4. python爬取豆瓣读书top250

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

  5. 一看就会的20行代码爬取豆瓣读书Top250

    想入门Python爬虫,大家都喜欢拿爬取豆瓣读书Top250为例子来练手. 下面我就给大家分享一个简单的爬虫. 1.确定所需库 首先我们要确定需要引入的库. 要爬取网页的数据,当然要发送请求啦,所以我 ...

  6. 使用Xpath语法爬取豆瓣读书Top250

    使用Xpath语法爬取豆瓣读书Top250(csv存取数据) 使用的软件是Spyder 网页地址:https://book.douban.com/top250?start=0 直接上代码: 建议大家从 ...

  7. 爬取豆瓣读书Top250,导入sqlist数据库(或excel表格)中

    爬取豆瓣读书Top250,导入sqlist数据库(或excel表格)中 获取源代码请访问https://github.com/zhang020801/douban_bookTop250 一.程序源代码 ...

  8. 使用Requests和Lxml库,爬取豆瓣读书TOP250

    from lxml import etree import requests import csv #导入需要的库fp = open('C://Users/Administrator/Desktop/ ...

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

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

最新文章

  1. .net mysql中文乱码解决办法
  2. Git Proxy开关
  3. 怎么用计算机计算年月份,如何使用Excel计算两个日期之间的月数?
  4. STM32工作笔记006---常见硬件介绍-以及常见术语--随时更新
  5. 面向模式的分析和设计(POAD)
  6. MFC输出EXCEL文档的过程总结
  7. MySQL 入门(三)—— MySQL数据类型
  8. 保证接口数据安全的10种方案
  9. linux的ip是什么,Linux-IP地址后边加个/8(16,24,32)是什么意思?
  10. JavaScript三种弹出框(alert、confirm、prompt),一次性全弄清!
  11. nvivo服务器项目,【NVivo教程】用Nvivo为研究团队设立主项目
  12. android原生坐标系,经纬度查寻地图位置,坐标系在线互转
  13. 开源生物特征识别库 OpenBR
  14. Three.js光源梳理3——平行光(DirectionalLight)
  15. python修改悦跑圈数据_悦跑圈数据导出 悦跑圈新版本支持跑表、跑步机数据接入 - 电脑常识 - 服务器之家...
  16. SpringBoot整合Keycloak实现单点登录
  17. 学生体育运动主题网页设计——兵乓球国乒网(纯HTML+CSS代码)
  18. 不会这 9 种常用的软件工具!你敢说你会网络安全?
  19. 创业时代,喔,创业时代,有一点可爱有一点呆
  20. 函数《潭州学院(心蓝)》

热门文章

  1. MNE读取竞赛数据集gdf格式脑电数据,并简单可视化
  2. 从找书到笔记整理,这些工具助力你完成高效阅读
  3. 2023上半年软件设计师-试题详解与分析
  4. IBinder转换为BpBinder
  5. 中国联通短信网关接入程序源代码(SGIP1.2协议)
  6. 软考必过 - 系统架构师 - 企业信息化与战略规划
  7. discuz教程,分享本地附件转远程附件和远程附件转本地附件的SQL代码
  8. u盘锁计算机,U盘开启电脑“密码锁”逆天功能
  9. 2023计算机毕业设计选题一定要注意这几点-计算机专业毕业设计题目参考推荐
  10. ITOP4412开发板之声卡测试