python scrapy框架详解_python Scrapy框架原理解析

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

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

9837ddad56f6eb60d9e88842e8d0011d.png

如下是一段运用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框架原理的资料请关注免费资源网其它相关文章!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值