成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

23、 Python快速開(kāi)發(fā)分布式搜索引擎Scrapy精講—craw scrapy item lo

QiuyueZhong / 2250人閱讀

摘要:百度云搜索,搜各種資料搜網(wǎng)盤(pán),搜各種資料用命令創(chuàng)建自動(dòng)爬蟲(chóng)文件創(chuàng)建爬蟲(chóng)文件是根據(jù)的母版來(lái)創(chuàng)建爬蟲(chóng)文件的查看創(chuàng)建爬蟲(chóng)文件可用的母版母版說(shuō)明創(chuàng)建基礎(chǔ)爬蟲(chóng)文件創(chuàng)建自動(dòng)爬蟲(chóng)文件創(chuàng)建爬取數(shù)據(jù)爬蟲(chóng)文件創(chuàng)建爬取數(shù)據(jù)爬蟲(chóng)文件創(chuàng)建一個(gè)基礎(chǔ)母版爬蟲(chóng),其他同理

【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網(wǎng)盤(pán),搜各種資料:http://www.swpan.cn】

用命令創(chuàng)建自動(dòng)爬蟲(chóng)文件

創(chuàng)建爬蟲(chóng)文件是根據(jù)scrapy的母版來(lái)創(chuàng)建爬蟲(chóng)文件的

scrapy genspider -l??查看scrapy創(chuàng)建爬蟲(chóng)文件可用的母版

Available templates:母版說(shuō)明
  basic   ? ?  創(chuàng)建基礎(chǔ)爬蟲(chóng)文件

  crawl     ? ?創(chuàng)建自動(dòng)爬蟲(chóng)文件
  csvfeed   ? ? ?創(chuàng)建爬取csv數(shù)據(jù)爬蟲(chóng)文件

  xmlfeed    ?創(chuàng)建爬取xml數(shù)據(jù)爬蟲(chóng)文件

創(chuàng)建一個(gè)基礎(chǔ)母版爬蟲(chóng),其他同理

scrapy genspider ?-t ?母版名稱 ?爬蟲(chóng)文件名稱 ?要爬取的域名?創(chuàng)建一個(gè)基礎(chǔ)母版爬蟲(chóng),其他同理
如:scrapy genspider -t?crawl?lagou www.lagou.com

第一步,配置items.py接收數(shù)據(jù)字段

default_output_processor = TakeFirst()默認(rèn)利用ItemLoader類(lèi),加載items容器類(lèi)填充數(shù)據(jù),是列表類(lèi)型,可以通過(guò)TakeFirst()方法,獲取到列表里的內(nèi)容

input_processor = MapCompose(預(yù)處理函數(shù))設(shè)置數(shù)據(jù)字段的預(yù)處理函數(shù),可以是多個(gè)函數(shù)

#?-*-?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,文件是專門(mén)用于,接收爬蟲(chóng)獲取到的數(shù)據(jù)信息的,就相當(dāng)于是容器文件

import?scrapy
from?scrapy.loader.processors?import?MapCompose,TakeFirst
from?scrapy.loader?import?ItemLoader????????????????#導(dǎo)入ItemLoader類(lèi)也就加載items容器類(lèi)填充數(shù)據(jù)

class?LagouItemLoader(ItemLoader):??????????????????#自定義Loader繼承ItemLoader類(lèi),在爬蟲(chóng)頁(yè)面調(diào)用這個(gè)類(lèi)填充數(shù)據(jù)到Item類(lèi)
????default_output_processor?=?TakeFirst()??????????#默認(rèn)利用ItemLoader類(lèi),加載items容器類(lèi)填充數(shù)據(jù),是列表類(lèi)型,可以通過(guò)TakeFirst()方法,獲取到列表里的內(nèi)容

def?tianjia(value):?????????????????????????????????#自定義數(shù)據(jù)預(yù)處理函數(shù)
????return?"叫賣(mài)錄音網(wǎng)"+value????????????????????????#將處理后的數(shù)據(jù)返給Item

class?LagouItem(scrapy.Item):???????????????????????#設(shè)置爬蟲(chóng)獲取到的信息容器類(lèi)
????title?=?scrapy.Field(???????????????????????????#接收爬蟲(chóng)獲取到的title信息
????????input_processor?=?MapCompose(tianjia),??????#將數(shù)據(jù)預(yù)處理函數(shù)名稱傳入MapCompose方法里處理,數(shù)據(jù)預(yù)處理函數(shù)的形式參數(shù)value會(huì)自動(dòng)接收字段title
????)

第二步,編寫(xiě)自動(dòng)爬蟲(chóng)與利用ItemLoader類(lèi)加載items容器類(lèi)填充數(shù)據(jù)

自動(dòng)爬蟲(chóng)
Rule()設(shè)置爬蟲(chóng)規(guī)則
  參數(shù):
  LinkExtractor()設(shè)置url規(guī)則
  callback="回調(diào)函數(shù)名稱"
  follow=True 表示在抓取頁(yè)面繼續(xù)深入

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

*

?利用自定義Loader類(lèi)繼承ItemLoader類(lèi),加載items容器類(lèi)填充數(shù)據(jù)

*ItemLoader()實(shí)例化一個(gè)ItemLoader對(duì)象來(lái)加載items容器類(lèi),填充數(shù)據(jù),如果是自定義Loader繼承的ItemLoader同樣的用法
  參數(shù):
  第一個(gè)參數(shù):要填充數(shù)據(jù)的items容器類(lèi)注意加上括號(hào),
  第二個(gè)參數(shù):response*

ItemLoader對(duì)象下的方法:
  add_xpath("字段名稱","xpath表達(dá)式")方法,用xpath表達(dá)式獲取數(shù)據(jù)填充到指定字段
  add_css("字段名稱","css選擇器")方法,用css選擇器獲取數(shù)據(jù)填充到指定字段
  add_value("字段名稱",字符串內(nèi)容)方法,將指定字符串?dāng)?shù)據(jù)填充到指定字段
  load_item()方法無(wú)參,將所有數(shù)據(jù)生成,load_item()方法被yield后數(shù)據(jù)被填充items容器指定類(lèi)的各個(gè)字段

?爬蟲(chóng)文件

#?-*-?coding:?utf-8?-*-
import?scrapy
from?scrapy.linkextractors?import?LinkExtractor
from?scrapy.spiders?import?CrawlSpider,?Rule
from?adc.items?import?LagouItem,LagouItemLoader??#導(dǎo)入items容器類(lèi),和ItemLoader類(lèi)

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

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

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

????def?parse_job(self,?response):??????????????????#回調(diào)函數(shù),注意:因?yàn)镃rawlS模板的源碼創(chuàng)建了parse回調(diào)函數(shù),所以切記我們不能創(chuàng)建parse名稱的函數(shù)
????????#利用ItemLoader類(lèi),加載items容器類(lèi)填充數(shù)據(jù)
????????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文件與爬蟲(chóng)文件的原理圖


【轉(zhuǎn)載自:http://www.lqkweb.com】

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/45139.html

相關(guān)文章

  • 21、 Python快速開(kāi)發(fā)布式搜索引擎Scrapy精講—爬蟲(chóng)數(shù)據(jù)保存

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤(pán),搜各種資料注意數(shù)據(jù)保存的操作都是在文件里操作的將數(shù)據(jù)保存為文件是一個(gè)信號(hào)檢測(cè)導(dǎo)入圖片下載器模塊定義數(shù)據(jù)處理類(lèi),必須繼承初始化時(shí)打開(kāi)文件為數(shù)據(jù)處理函數(shù),接收一個(gè),里就是爬蟲(chóng)最后來(lái)的數(shù)據(jù)對(duì)象文章標(biāo)題是 【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網(wǎng)盤(pán),搜各種資料:http://www.swpan.cn】 注意:數(shù)據(jù)保存的操作都是在p...

    Alex 評(píng)論0 收藏0
  • 20、 Python快速開(kāi)發(fā)布式搜索引擎Scrapy精講—編寫(xiě)spiders爬蟲(chóng)文件循環(huán)抓取內(nèi)容

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤(pán),搜各種資料編寫(xiě)爬蟲(chóng)文件循環(huán)抓取內(nèi)容方法,將指定的地址添加到下載器下載頁(yè)面,兩個(gè)必須參數(shù),參數(shù)頁(yè)面處理函數(shù)使用時(shí)需要方法,是庫(kù)下的方法,是自動(dòng)拼接,如果第二個(gè)參數(shù)的地址是相對(duì)路徑會(huì)自動(dòng)與第一個(gè)參數(shù)拼接導(dǎo) 【百度云搜索,搜各種資料:http://bdy.lqkweb.com】 【搜網(wǎng)盤(pán),搜各種資料:http://www.swpan.cn】 編寫(xiě)spiders爬...

    CntChen 評(píng)論0 收藏0
  • 18、 Python快速開(kāi)發(fā)布式搜索引擎Scrapy精講Scrapy啟動(dòng)文件的配置—xpath表

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤(pán),搜各種資料我們自定義一個(gè)來(lái)作為啟動(dòng)文件導(dǎo)入執(zhí)行命令方法給解釋器,添加模塊新路徑將文件所在目錄添加到解釋器執(zhí)行命令爬蟲(chóng)文件表達(dá)式基本使用設(shè)置爬蟲(chóng)起始域名設(shè)置爬蟲(chóng)起始地址默認(rèn)爬蟲(chóng)回調(diào)函數(shù),返 【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網(wǎng)盤(pán),搜各種資料:http://www.swpan.cn】 我們自定義一個(gè)main.py來(lái)作為啟動(dòng)...

    rubyshen 評(píng)論0 收藏0
  • 24、Python快速開(kāi)發(fā)布式搜索引擎Scrapy精講—爬蟲(chóng)和反爬的對(duì)抗過(guò)程以及策略—scrapy

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

    PumpkinDylan 評(píng)論0 收藏0
  • 25、Python快速開(kāi)發(fā)布式搜索引擎Scrapy精講—Requests請(qǐng)求和Response響應(yīng)

    摘要:百度云搜索,搜各種資料搜網(wǎng)盤(pán),搜各種資料請(qǐng)求請(qǐng)求就是我們?cè)谂老x(chóng)文件寫(xiě)的方法,也就是提交一個(gè)請(qǐng)求地址,請(qǐng)求是我們自定義的方法提交一個(gè)請(qǐng)求參數(shù)字符串類(lèi)型地址回調(diào)函數(shù)名稱字符串類(lèi)型請(qǐng)求方式,如果字典類(lèi)型的,瀏覽器用戶代理設(shè)置字典類(lèi)型鍵值對(duì),向回調(diào) 【百度云搜索,搜各種資料:http://www.lqkweb.com】 【搜網(wǎng)盤(pán),搜各種資料:http://www.swpan.cn】 Reque...

    Shihira 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<