欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python Scrapy框架原理解析

 更新時(shí)間:2021年01月04日 11:47:51   作者:劃水De雁曉明  
這篇文章主要介紹了python Scrapy框架原理的相關(guān)資料,幫助大家更好的理解和使用python爬蟲,感興趣的朋友可以了解下

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

如下是手繪Scrapy框架原理圖,幫助理解

如下是一段運(yùn)用Scrapy創(chuàng)建的spider:使用了內(nèi)置的crawl模板,以利用Scrapy庫的CrawlSpider。相對(duì)于簡單的爬取爬蟲來說,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實(shí)現(xiàn)的多線程http壓力測試代碼

    Python實(shí)現(xiàn)的多線程http壓力測試代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)的多線程http壓力測試代碼,結(jié)合實(shí)例形式分析了Python多線程操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-02-02
  • Python實(shí)現(xiàn)求解一元二次方程的方法示例

    Python實(shí)現(xiàn)求解一元二次方程的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)求解一元二次方程的方法,涉及Python基于math包進(jìn)行數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • python-docx文件定位讀取過程(嘗試替換)

    python-docx文件定位讀取過程(嘗試替換)

    今天小編就為大家分享一篇python-docx文件定位讀取過程(嘗試替換),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python管理Windows服務(wù)小腳本

    Python管理Windows服務(wù)小腳本

    這篇文章主要為大家詳細(xì)介紹了Python管理Windows服務(wù)的小腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python解析JSON數(shù)據(jù)的基本方法實(shí)例代碼

    Python解析JSON數(shù)據(jù)的基本方法實(shí)例代碼

    JSON (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,下面這篇文章主要給大家介紹了關(guān)于Python解析JSON數(shù)據(jù)的基本方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • python datatable庫大型數(shù)據(jù)集和多核數(shù)據(jù)處理使用探索

    python datatable庫大型數(shù)據(jù)集和多核數(shù)據(jù)處理使用探索

    這篇文章主要介紹了python datatable庫大型數(shù)據(jù)集和多核數(shù)據(jù)處理使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 一文讀懂Python版本管理工具Pyenv使用

    一文讀懂Python版本管理工具Pyenv使用

    在開發(fā)Python程序的時(shí)候,有時(shí)候可能需要在不同版本的Python上進(jìn)行測試。pyenv就是這么一個(gè)管理多版本Python的工具,今天給大家分享Python版本管理工具Pyenv使用,感興趣的朋友一起看看吧
    2021-06-06
  • python 找出list中最大或者最小幾個(gè)數(shù)的索引方法

    python 找出list中最大或者最小幾個(gè)數(shù)的索引方法

    今天小編就為大家分享一篇python 找出list中最大或者最小幾個(gè)數(shù)的索引方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • OpenCV+Imutils實(shí)現(xiàn)圖像的旋轉(zhuǎn)操作

    OpenCV+Imutils實(shí)現(xiàn)圖像的旋轉(zhuǎn)操作

    imutils是在OPenCV基礎(chǔ)上的一個(gè)封裝,達(dá)到更為簡結(jié)的調(diào)用OPenCV接口的目的,它可以輕松的實(shí)現(xiàn)圖像的平移,旋轉(zhuǎn),縮放,骨架化等一系列的操作。本文將用其實(shí)現(xiàn)圖像的旋轉(zhuǎn)操作,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • 基于python3 的百度圖片下載器的實(shí)現(xiàn)代碼

    基于python3 的百度圖片下載器的實(shí)現(xiàn)代碼

    這篇文章主要介紹了基于python3 的百度圖片下載器的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評(píng)論