国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

23、 Python快速開發分布式搜索引擎Scrapy精講—craw scrapy item lo

QiuyueZhong / 2187人閱讀

摘要:百度云搜索,搜各種資料搜網盤,搜各種資料用命令創建自動爬蟲文件創建爬蟲文件是根據的母版來創建爬蟲文件的查看創建爬蟲文件可用的母版母版說明創建基礎爬蟲文件創建自動爬蟲文件創建爬取數據爬蟲文件創建爬取數據爬蟲文件創建一個基礎母版爬蟲,其他同理

【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網盤,搜各種資料:http://www.swpan.cn】

用命令創建自動爬蟲文件

創建爬蟲文件是根據scrapy的母版來創建爬蟲文件的

scrapy genspider -l??查看scrapy創建爬蟲文件可用的母版

Available templates:母版說明
  basic   ? ?  創建基礎爬蟲文件

  crawl     ? ?創建自動爬蟲文件
  csvfeed   ? ? ?創建爬取csv數據爬蟲文件

  xmlfeed    ?創建爬取xml數據爬蟲文件

創建一個基礎母版爬蟲,其他同理

scrapy genspider ?-t ?母版名稱 ?爬蟲文件名稱 ?要爬取的域名?創建一個基礎母版爬蟲,其他同理
如:scrapy genspider -t?crawl?lagou www.lagou.com

第一步,配置items.py接收數據字段

default_output_processor = TakeFirst()默認利用ItemLoader類,加載items容器類填充數據,是列表類型,可以通過TakeFirst()方法,獲取到列表里的內容

input_processor = MapCompose(預處理函數)設置數據字段的預處理函數,可以是多個函數

#?-*-?coding:?utf-8?-*-

#?Define?here?the?models?for?your?scraped?items
#
#?See?documentation?in:
#?http://doc.scrapy.org/en/latest/topics/items.html
#items.py,文件是專門用于,接收爬蟲獲取到的數據信息的,就相當于是容器文件

import?scrapy
from?scrapy.loader.processors?import?MapCompose,TakeFirst
from?scrapy.loader?import?ItemLoader????????????????#導入ItemLoader類也就加載items容器類填充數據

class?LagouItemLoader(ItemLoader):??????????????????#自定義Loader繼承ItemLoader類,在爬蟲頁面調用這個類填充數據到Item類
????default_output_processor?=?TakeFirst()??????????#默認利用ItemLoader類,加載items容器類填充數據,是列表類型,可以通過TakeFirst()方法,獲取到列表里的內容

def?tianjia(value):?????????????????????????????????#自定義數據預處理函數
????return?"叫賣錄音網"+value????????????????????????#將處理后的數據返給Item

class?LagouItem(scrapy.Item):???????????????????????#設置爬蟲獲取到的信息容器類
????title?=?scrapy.Field(???????????????????????????#接收爬蟲獲取到的title信息
????????input_processor?=?MapCompose(tianjia),??????#將數據預處理函數名稱傳入MapCompose方法里處理,數據預處理函數的形式參數value會自動接收字段title
????)

第二步,編寫自動爬蟲與利用ItemLoader類加載items容器類填充數據

自動爬蟲
Rule()設置爬蟲規則
  參數:
  LinkExtractor()設置url規則
  callback="回調函數名稱"
  follow=True 表示在抓取頁面繼續深入

LinkExtractor()對爬蟲獲取到的url做規則判斷處理
  參數:
  allow= r"jobs/" 是一個正則表達式,表示符合這個url格式的,才提取
  deny= r"jobs/" 是一個正則表達式,表示符合這個url格式的,不提取拋棄掉,與allow相反
  allow_domains= www.lagou.com/ 表示這個域名下的連接才提取
  deny_domains= www.lagou.com/ 表示這個域名下的連接不提取拋棄
  restrict_xpaths= xpath表達式 表示可以用xpath表達式限定爬蟲只提取一個頁面指定區域的URL
  restrict_css= css選擇器,表示可以用css選擇器限定爬蟲只提取一個頁面指定區域的URL
  tags= "a" 表示爬蟲通過a標簽去尋找url,默認已經設置,默認即可
  attrs= "href" 表示獲取到a標簽的href屬性,默認已經設置,默認即可

*

?利用自定義Loader類繼承ItemLoader類,加載items容器類填充數據

*ItemLoader()實例化一個ItemLoader對象來加載items容器類,填充數據,如果是自定義Loader繼承的ItemLoader同樣的用法
  參數:
  第一個參數:要填充數據的items容器類注意加上括號,
  第二個參數:response*

ItemLoader對象下的方法:
  add_xpath("字段名稱","xpath表達式")方法,用xpath表達式獲取數據填充到指定字段
  add_css("字段名稱","css選擇器")方法,用css選擇器獲取數據填充到指定字段
  add_value("字段名稱",字符串內容)方法,將指定字符串數據填充到指定字段
  load_item()方法無參,將所有數據生成,load_item()方法被yield后數據被填充items容器指定類的各個字段

?爬蟲文件

#?-*-?coding:?utf-8?-*-
import?scrapy
from?scrapy.linkextractors?import?LinkExtractor
from?scrapy.spiders?import?CrawlSpider,?Rule
from?adc.items?import?LagouItem,LagouItemLoader??#導入items容器類,和ItemLoader類

class?LagouSpider(CrawlSpider):?????????????????????#創建爬蟲類
????name?=?"lagou"??????????????????????????????????#爬蟲名稱
????allowed_domains?=?["www.luyin.org"]?????????????#起始域名
????start_urls?=?["http://www.luyin.org/"]??????????#起始url

????rules?=?(
????????#配置抓取列表頁規則
????????Rule(LinkExtractor(allow=("ggwa/.*")),?follow=True),

????????#配置抓取內容頁規則
????????Rule(LinkExtractor(allow=("post/d+.html.*")),?callback="parse_job",?follow=True),
????)

????def?parse_job(self,?response):??????????????????#回調函數,注意:因為CrawlS模板的源碼創建了parse回調函數,所以切記我們不能創建parse名稱的函數
????????#利用ItemLoader類,加載items容器類填充數據
????????item_loader?=?LagouItemLoader(LagouItem(),?response=response)
????????item_loader.add_xpath("title","/html/head/title/text()")
????????article_item?=?item_loader.load_item()

????????yield?article_item

items.py文件與爬蟲文件的原理圖


【轉載自:http://www.lqkweb.com】

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45139.html

相關文章

  • 21、 Python快速開發布式搜索引擎Scrapy精講—爬蟲數據保存

    摘要:百度云搜索,搜各種資料搜網盤,搜各種資料注意數據保存的操作都是在文件里操作的將數據保存為文件是一個信號檢測導入圖片下載器模塊定義數據處理類,必須繼承初始化時打開文件為數據處理函數,接收一個,里就是爬蟲最后來的數據對象文章標題是 【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網盤,搜各種資料:http://www.swpan.cn】 注意:數據保存的操作都是在p...

    Alex 評論0 收藏0
  • 20、 Python快速開發布式搜索引擎Scrapy精講—編寫spiders爬蟲文件循環抓取內容

    摘要:百度云搜索,搜各種資料搜網盤,搜各種資料編寫爬蟲文件循環抓取內容方法,將指定的地址添加到下載器下載頁面,兩個必須參數,參數頁面處理函數使用時需要方法,是庫下的方法,是自動拼接,如果第二個參數的地址是相對路徑會自動與第一個參數拼接導 【百度云搜索,搜各種資料:http://bdy.lqkweb.com】 【搜網盤,搜各種資料:http://www.swpan.cn】 編寫spiders爬...

    CntChen 評論0 收藏0
  • 18、 Python快速開發布式搜索引擎Scrapy精講Scrapy啟動文件的配置—xpath表

    摘要:百度云搜索,搜各種資料搜網盤,搜各種資料我們自定義一個來作為啟動文件導入執行命令方法給解釋器,添加模塊新路徑將文件所在目錄添加到解釋器執行命令爬蟲文件表達式基本使用設置爬蟲起始域名設置爬蟲起始地址默認爬蟲回調函數,返 【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網盤,搜各種資料:http://www.swpan.cn】 我們自定義一個main.py來作為啟動...

    rubyshen 評論0 收藏0
  • 24、Python快速開發布式搜索引擎Scrapy精講—爬蟲和反爬的對抗過程以及策略—scrapy

    摘要:百度云搜索,搜各種資料搜網盤,搜各種資料基本概念反爬蟲的目的爬蟲和反爬的對抗過程以及策略架構源碼分析圖 【百度云搜索,搜各種資料:http://www.lqkweb.com】 【搜網盤,搜各種資料:http://www.swpan.cn】 1、基本概念 showImg(https://segmentfault.com/img/remote/1460000019749170); 2、反爬...

    PumpkinDylan 評論0 收藏0
  • 25、Python快速開發布式搜索引擎Scrapy精講—Requests請求和Response響應

    摘要:百度云搜索,搜各種資料搜網盤,搜各種資料請求請求就是我們在爬蟲文件寫的方法,也就是提交一個請求地址,請求是我們自定義的方法提交一個請求參數字符串類型地址回調函數名稱字符串類型請求方式,如果字典類型的,瀏覽器用戶代理設置字典類型鍵值對,向回調 【百度云搜索,搜各種資料:http://www.lqkweb.com】 【搜網盤,搜各種資料:http://www.swpan.cn】 Reque...

    Shihira 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<