摘要:百度云搜索,搜各種資料搜網(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
摘要:百度云搜索,搜各種資料搜網(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...
摘要:百度云搜索,搜各種資料搜網(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爬...
摘要:百度云搜索,搜各種資料搜網(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)...
摘要:百度云搜索,搜各種資料搜網(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、反爬...
摘要:百度云搜索,搜各種資料搜網(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...
閱讀 3211·2021-09-22 14:59
閱讀 2014·2021-09-22 10:02
閱讀 2182·2021-09-04 16:48
閱讀 2325·2019-08-30 15:53
閱讀 3040·2019-08-30 11:27
閱讀 3510·2019-08-29 18:35
閱讀 1020·2019-08-29 17:07
閱讀 2733·2019-08-29 13:27