基于Scrapt框架的全站数据爬取
Posted jayxuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Scrapt框架的全站数据爬取相关的知识,希望对你有一定的参考价值。
创建scrapy工程项目,除了爬虫文件中的代码需要略微修改,其他模块用法相同(如中间件,管道等);
爬虫文件代码流程
导入链接提取器
from scrapy.linkextractors import LinkExtractor
导入规则解析器
from scrapy.spiders import CrawlSpider,Rule
1、使爬虫文件中的类不在继承scrapy.Spider,而是CrawlSpider
2、起始URL一样
3、定义链接提取规则,基于正则表达式
link = LinkExteactor(allow = ‘r‘所需的正则表达式")
link2 = LinkExteactor(allow = ‘r‘所需的正则表达式")
框架会自动请求起始URL,并将页面返回给链接提取器,链接提取器通过正则表达式提取匹配的URL;
4、定义规则解析器
rules = (
Rule(link(链接提取器名称),callback="回调函数名称",follew=True),
Rule(link2(链接提取器名称),callback="回调函数名称",follew=False),
)
follew参数表示,是否在link获取到的链接内继续获取link中要匹配的链接
框架会自动让规则解析器去请求链接提取器提取到的链接,并返回页面交给回调函数,回调函数,用来编写解析数据的代码;
5、编写回调函数解析数据
def parse_one(self,response):
print(response)
def parse_two(self,response):
print(response)
以上是关于基于Scrapt框架的全站数据爬取的主要内容,如果未能解决你的问题,请参考以下文章
基于scrapy中---全站爬取数据----CrawlSpider的使用