五. 京东图书全站信息爬取
1. 网页分析
首先我们打开京东图书的网站:https://book.jd.com/booksort.html
里面加粗的字体是图书的大分类信息,下面是每个大分类下的小分类信息,点击每个小分类链接,可以看到相关分类下的图书信息。
2. 项目创建
打开CMD,切换到你想要保存项目的文件夹,输入scrapy stratproject JingDongBook(项目名)来创建项目,然后根据提示切换到项目内,输入scrapy genspider jdbook(爬虫名) jd.com(域名)来创建爬虫并设置域名。
3. 大分类信息爬取
这里直接将items也放到jdbook.py爬虫文件中来定义,items.py不做修改。具体代码如下:
# -*- coding: utf-8 -*-
import scrapy
class JdbookSpider(scrapy.Spider):
name = 'jdbook'
allowed_domains = ['jd.com']
start_urls = ['https://book.jd.com/booksort.html']
def parse(self, response):
dt_list = response.xpath("//div[@class='mc']/dl/dt")
for dt in dt_list:
item = {
}
item['cate_b'] = dt.xpath("./a/text()").extract_first() # 大分类
爬虫的结果为:
4. 小分类信息爬取
# -*- coding: utf-8 -*-
import scrapy
class JdbookSpider(scrapy.Spider):
name = 'jdbook'
allowed_domains = ['jd.com']
start_urls = ['https://book.jd.com/booksort.html']
def parse(self, response):
dt_list = response.xpath("//div[@class='mc']/dl/dt")
for dt in dt_list:
item = {
}
item['cate_b'] = dt.xpath("./a/text()").extract_first() # 大分类
#yield item
dd_list = dt.xpath("./following-sibling::dd[1]/em")