一: 框架创建三步曲(前题:提前安装了scrapy框架):
scrapy startproject scrapy_name -> (框架名称)
cd scrapy_name ->(进入到框架根目录下)
scrapy genspider spider_name www.daideu.com -> (创建爬虫文件,指定起始URL)
二:在设置spider_name爬虫文件
上案例:获取数据的两种方式:css选择器,xpath选择器
# 部分代码仅供参考!!!
class FilmSpider(scrapy.Spider):
name = 'film'
start_urls = ['http://books.toscrape.com/catalogue/page-1.html']
def parse(self, response):
url_old = 'http://books.toscrape.com/catalogue/'
book_name = response.css('a[title]::text').extract()
print(book_name) # 打印获取的数据
new_url = response.xpath('//li[@]/a/@href').extract_first()
# 把下一页的url提交给管道当做新的起始url
if new_url:
yield scrapy.Request(url=url_old+new_url)
代码分析:
book_name:通过response调用css选择器后面加上extract()方法提取函数
new_url:通过response调用xpath(小编建议手写当然也可以在网页上复制不过容易出错),加上extract_first()
if new_url:判断是不是最后一页的url
url=url_old+new_url:要观察不同的网页的url寻找规律进行拼接
yield scrapy.Request(url=url_old+new_url):这句话是你进行多层爬取的时候用到的,也可以直接把所有网页的URL获取到一个集合中进行遍历让yield发送给管道,具体情况具体分析,这里就做简单的了解思路
介绍一下extract()与extract_first()两种方法的区别
extract():这个方法返回的是一个数组list,,里面包含了多个string,如果只有一个string,则返回[‘ABC’]这样的形式。
extract_first():这个方法返回的是一个string字符串,是list数组里面的第一个字符串



