Python 爬虫包含两个重要的部分:正则表达式和Scrapy框架的运用, 正则表达式对于所有语言都是通用的,网络上可以找到各种资源。

如下是手绘Scrapy框架原理图,帮助理解

python Scrapy框架原理解析

如下是一段运用Scrapy创建的spider:使用了内置的crawl模板,以利用Scrapy库的CrawlSpider。相对于简单的爬取爬虫来说,Scrapy的CrawlSpider拥有一些网络爬取时可用的特殊属性和方法:

$ scrapy genspider country_or_district example.python-scrapying.com--template=crawl

运行genspider命令后,下面的代码将会在example/spiders/country_or_district.py中自动生成。

# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from example.items import CountryOrDistrictItem


class CountryOrDistrictSpider(CrawlSpider):
  name = 'country_or_district'
  allowed_domains = ['example.python-scraping.com']
  start_urls = ['http://example.python-scraping.com/']

  rules = (
    Rule(LinkExtractor(allow=r'/index/', deny=r'/user/'),
       follow=True),
    Rule(LinkExtractor(allow=r'/view/', deny=r'/user/'),
       callback='parse_item'),
  )

  def parse_item(self, response):
    item = CountryOrDistrictItem()
    name_css = 'tr#places_country_or_district__row td.w2p_fw::text'
    item['name'] = response.css(name_css).extract()
    pop_xpath = '//tr[@id="places_population__row"]/td[@class="w2p_fw"]/text()'
    item['population'] = response.xpath(pop_xpath).extract()
    return item

爬虫类包括的属性:

  • name: 识别爬虫的字符串。
  • allowed_domains: 可以爬取的域名列表。如果没有设置该属性,则表示可以爬取任何域名。
  • start_urls: 爬虫起始URL列表。
  • rules: 该属性为一个通过正则表达式定义的Rule对象元组,用于告知爬虫需要跟踪哪些链接以及哪些链接包含抓取的有用内容。

以上就是python Scrapy框架原理解析的详细内容,更多关于Scrapy框架原理的资料请关注其它相关文章!

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。