介绍
本篇涉及的内容主要是获取分类下的所有图书数据,并写入MySQL
准备
Python3.6、Scrapy、Twisted、MySQLdb等
演示
代码一、创建项目1
2scrapy startproject BookSpider #创建项目
scrapy genspider douban book.douban.com #创建豆瓣爬虫二、创建测试类(main.py)1
2from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'douban'])三、修改配置(spiders/settings.py)1
2USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' #浏览器
ROBOTSTXT_OBEY = False #不遵循豆瓣网站的爬虫协议四、设置爬取的分类(spiders/douban.py)1start_urls = ['https://book.douban.com/tag/神经网络'] # 只测试爬取神经网络五、获取分类列表页图书数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14from scrapy.http import Request
from urllib.parse import urljoin
def parse(self, response):
get_nodes = response.xpath('//div[@id="subject_list"]/ul/li/div[@class="pic"]/a')
for node in get_nodes:
url = node.xpath("@href").get()
img_url = node.xpath('[email protected]').get()
yield Request(url=url, meta={"img_url": img_url}, callback=self.parse_book) # 传递img_url值 放在meta里面, parse_book回调函数,获取的详情再分析
next_url = response.xpath('//div[@class="paginator&#