python Scrapy框架原理解析
Python 爬蟲包含兩個(gè)重要的部分:正則表達(dá)式和Scrapy框架的運(yùn)用, 正則表達(dá)式對(duì)于所有語言都是通用的,網(wǎng)絡(luò)上可以找到各種資源。
如下是手繪Scrapy框架原理圖,幫助理解

如下是一段運(yùn)用Scrapy創(chuàng)建的spider:使用了內(nèi)置的crawl模板,以利用Scrapy庫的CrawlSpider。相對(duì)于簡(jiǎn)單的爬取爬蟲來說,Scrapy的CrawlSpider擁有一些網(wǎng)絡(luò)爬取時(shí)可用的特殊屬性和方法:
$ scrapy genspider country_or_district example.python-scrapying.com--template=crawl
運(yùn)行g(shù)enspider命令后,下面的代碼將會(huì)在example/spiders/country_or_district.py中自動(dòng)生成。
# -*- 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: 識(shí)別爬蟲的字符串。
- allowed_domains: 可以爬取的域名列表。如果沒有設(shè)置該屬性,則表示可以爬取任何域名。
- start_urls: 爬蟲起始URL列表。
- rules: 該屬性為一個(gè)通過正則表達(dá)式定義的Rule對(duì)象元組,用于告知爬蟲需要跟蹤哪些鏈接以及哪些鏈接包含抓取的有用內(nèi)容。
以上就是python Scrapy框架原理解析的詳細(xì)內(nèi)容,更多關(guān)于Scrapy框架原理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python 開發(fā)工具PyCharm安裝教程圖文詳解(新手必看)
PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測(cè)試、版本控制。今天通過本文給大家分享PyCharm安裝教程,一起看看吧2020-02-02
pytorch 計(jì)算Parameter和FLOP的操作
這篇文章主要介紹了pytorch 計(jì)算Parameter和FLOP的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python基于os.environ從windows獲取環(huán)境變量
這篇文章主要介紹了Python基于os.environ從windows獲取環(huán)境變量,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
python使用wxpython開發(fā)簡(jiǎn)單記事本的方法
這篇文章主要介紹了python使用wxpython開發(fā)簡(jiǎn)單記事本的方法,涉及Python使用wxPython實(shí)現(xiàn)桌面圖形應(yīng)用程序的技巧,需要的朋友可以參考下2015-05-05
在django中使用自定義標(biāo)簽實(shí)現(xiàn)分頁功能
這篇文章主要介紹了在django中使用自定義標(biāo)簽實(shí)現(xiàn)分頁功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

