基于Spider的全站数据爬取
什么是全站数据爬取?
- 就是将网站中某板块下的全部页码对应的页面数据进行爬取
下面我基于 校花网 进行全站数据爬取
#1.爬虫文件.py代码示例:
import scrapy
class XiaohuaSpider(scrapy.Spider):
name = 'xiaohua'
# allowed_domains = ['www.xxx.com']
start_urls = ['http://www.521609.com/meinvxiaohua/']
#生成一个通用的url模板(不可变)
url = 'http://www.521609.com/meinvxiaohua/list12%d.html'
page_num = 2
def parse(self, response):
li_list = response.xpath('//*[@id="content"]/div[2]/div[2]/ul/li')
for li in li_list:
img_name = li.xpath('./a[2]/b/text() | ./a[2]/text()').extract_first()
#打印出所爬到的所有数据
print(img_name)
if self.page_num <= 11:
new_url = format(self.url%self.page_num)
self.page_num += 1
#手动请求发送:callback回调函数是专门用作于数据解析,这儿是调用函数自身来进行解析,因为数据解析的方法一样
#这儿也可以再写一个别的函数,当做回调函数
yield scrapy.Request(url=new_url,callback=self.parse)
#这里我就不做持久化存储了,要存储的话,自己可以去看看我 scrapy--入门 的数据持久化存储