「Scrapy 爬虫框架」爬虫页(Spiders)详解

妖狐艹你老母 2022-10-25 11:28 452阅读 0赞

文章目录

  • 内容介绍
  • spider类参数解释

内容介绍

开发环境为 Python3.6,Scrapy 版本 2.4.x ,爬虫项目全部内容索引目录

看懂Python爬虫框架,所见即所得一切皆有可能

本章带你学习基于 Python3Scrapy 爬虫框架 中数据爬取过程中
在spider文件夹下是每个要执行的py爬虫文件,通过命令行执行的方式执行该文件夹下的py脚本,实现数据抓取的业务内容。

代码内容基于「Scrapy 爬虫框架」源码版本 2.4.0 ,更新内容会进行标记说明对应版本。

spider类参数解释

创建spider内容的命令

  1. scrapy genspider xxxxx xxxxxx.com
  • 1.name

    爬虫文件生成的实例化对象名,通过命令行生成,执行脚本的时候是通过这个名称执行,不需要修改,在一个爬虫项目里必须是惟一的。

    name = xxxxx # 这里对应的是命令行的第三部分

  • 2.allowed_domains

    允许爬取的域名,可选项。如果设置了域名则非域名下的url无法处理。

    allowed_domains = []
    allowed_domains = [“https://xxxxxx.com“,] # 这里对应的是命令行的最后一部分

  • 3.start_urls

    需要处理的url列表,通过spider基类的start_requests方法遍历请求。

    start_urls = [

    1. 'http://aaaa/',
    2. 'http://bbbb/',
    3. 'http://cccc/',

    ]

  • 4. custom_settings
    专属的spider配置,如果重写此设置会覆盖项目全局的设置,而且必须定义成类变量。建议统一在settings中设置便于管理。不要在此处修改。

  • 5.crawler
    spider类的crawler对象,用于获取settings配置信息中的设置,例如middlewares、pipline等中的设置。
    默认不需要修改。
  • 6.settings
    Settings实例,读取统一配置settings中的信息。
    默认不需要修改。
  • 7.logger
    用于发送数据抓取过程中的项目日志。
    默认不需要修改。
  • 8.from_crawler

    Scrapy用来创建spider类的方法,默认不需要修改。

    @classmethod
    def from_crawler(cls, crawler, args, *kwargs):

    1. spider = cls(*args, **kwargs)
    2. spider._set_crawler(crawler)
    3. return spider

    创建一个实例的对象

    def init(self):

    1. #实例化一个浏览器对象(实例化一次)
    2. self.bro = webdriver.Firefox(executable_path=chrm,options =options )
  • 9.start_requests()
    生成初始请求,默认使用start_urls列表中的的 url 来构造request,而且request是get请求。
    如果需要使用 post 方法、或者参数传递,需要重写start_requests方法。

  • 10.parse

    Scrapy使用的默认回调,用于处理数据的部分,可以自定义各种名称的parse方法用于数据抓取。

    def start_requests(self):

    1. parse_list = [
    2. self.parse1,
    3. self.parse2,
    4. ]
    5. # 非API接口方法
    6. for list_num in range(len(self.start_urls)):
    7. for url_num in range(len(self.start_urls[list_num])):
    8. yield scrapy.Request(url=self.start_urls[list_num][url_num],
    9. meta={ 'channel_name': self.channel_name_list[list_num][url_num],
    10. 'type_id': self.type_id_list[list_num][url_num]},
    11. callback=parse_list[list_num])

    def parse1(self, response):

    1. ......

    def parse2(self, response):

    1. ......
  • 11.closed

    爬虫关闭的方法

    必须在整个爬虫结束后,关闭浏览器

    def closed(self,spider):

    1. print('爬虫结束')
    2. self.bro.quit()

发表评论

表情:
评论列表 (有 0 条评论,452人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Scrapy - 爬虫框架

    Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和 [自