国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

濰坊仿站定制模板建站圖片外鏈上傳網(wǎng)站

濰坊仿站定制模板建站,圖片外鏈上傳網(wǎng)站,網(wǎng)站反鏈怎么做,王也天的個(gè)人資料聚焦網(wǎng)絡(luò)爬蟲(chóng)是“面向特定主題需求”的一種爬蟲(chóng)程序,而通用網(wǎng)絡(luò)爬蟲(chóng)則是捜索引擎抓取系統(tǒng)(Baidu、Google、Yahoo等)的重要組成部分,主要目的是將互聯(lián)網(wǎng)上的網(wǎng)頁(yè)下載到本地,形成一個(gè)互聯(lián)網(wǎng)內(nèi)容的鏡像備份。 增量抓取意…

圖片

  • 聚焦網(wǎng)絡(luò)爬蟲(chóng)是“面向特定主題需求”的一種爬蟲(chóng)程序,而通用網(wǎng)絡(luò)爬蟲(chóng)則是捜索引擎抓取系統(tǒng)(Baidu、Google、Yahoo等)的重要組成部分,主要目的是將互聯(lián)網(wǎng)上的網(wǎng)頁(yè)下載到本地,形成一個(gè)互聯(lián)網(wǎng)內(nèi)容的鏡像備份。

  • 增量抓取意即針對(duì)某個(gè)站點(diǎn)的數(shù)據(jù)進(jìn)行抓取,當(dāng)網(wǎng)站的新增數(shù)據(jù)或者該站點(diǎn)的數(shù)據(jù)發(fā)生變化后,自動(dòng)地抓取它新增的或者變化后的數(shù)據(jù)。

  • Web頁(yè)面按存在方式可以分為表層網(wǎng)頁(yè)(surface Web)和深層網(wǎng)頁(yè)(deep Web,也稱invisible Web pages或hidden Web)。

  • 表層網(wǎng)頁(yè)是指?jìng)鹘y(tǒng)搜索引擎可以索引的頁(yè)面,即以超鏈接可以到達(dá)的靜態(tài)網(wǎng)頁(yè)為主來(lái)構(gòu)成的Web頁(yè)面。

  • 深層網(wǎng)頁(yè)是那些大部分內(nèi)容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關(guān)鍵詞才能獲得的Web頁(yè)面。

01 聚焦爬蟲(chóng)技術(shù)

聚焦網(wǎng)絡(luò)爬蟲(chóng)(focused crawler)也就是主題網(wǎng)絡(luò)爬蟲(chóng)。聚焦爬蟲(chóng)技術(shù)增加了鏈接評(píng)價(jià)和內(nèi)容評(píng)價(jià)模塊,其爬行策略實(shí)現(xiàn)要點(diǎn)就是評(píng)價(jià)頁(yè)面內(nèi)容以及鏈接的重要性。

基于鏈接評(píng)價(jià)的爬行策略,主要是以Web頁(yè)面作為半結(jié)構(gòu)化文檔,其中擁有很多結(jié)構(gòu)信息可用于評(píng)價(jià)鏈接重要性。還有一個(gè)是利用Web結(jié)構(gòu)來(lái)評(píng)價(jià)鏈接價(jià)值的方法,也就是HITS法,其通過(guò)計(jì)算每個(gè)訪問(wèn)頁(yè)面的Authority權(quán)重和Hub權(quán)重來(lái)決定鏈接訪問(wèn)順序。

基于內(nèi)容評(píng)價(jià)的爬行策略,主要是將與文本相似的計(jì)算法加以應(yīng)用,提出Fish-Search算法,把用戶輸入查詢?cè)~當(dāng)作主題,在算法的進(jìn)一步改進(jìn)下,通過(guò)Shark-Search算法就能利用空間向量模型來(lái)計(jì)算頁(yè)面和主題相關(guān)度大小。

面向主題爬蟲(chóng),面向需求爬蟲(chóng):會(huì)針對(duì)某種特定的內(nèi)容去爬取信息,而且會(huì)保證信息和需求盡可能相關(guān)。一個(gè)簡(jiǎn)單的聚焦爬蟲(chóng)使用方法的示例如下所示。

  • 【例1】一個(gè)簡(jiǎn)單的爬取圖片的聚焦爬蟲(chóng)

import?urllib.request#?爬蟲(chóng)專用的包urllib,不同版本的Python需要下載不同的爬蟲(chóng)專用包
import?re#?正則用來(lái)規(guī)律爬取
keyname=""#?想要爬取的內(nèi)容
key=urllib.request.quote(keyname)#?需要將你輸入的keyname解碼,從而讓計(jì)算機(jī)讀懂
for?i?in?range(0,5):???#?(0,5)數(shù)字可以自己設(shè)置,是淘寶某產(chǎn)品的頁(yè)數(shù)url="https://s.taobao.com/search?q="+key+"&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20180815&ie=utf8&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s="+str(i*44)
#?url后面加上你想爬取的網(wǎng)站名,然后你需要多開(kāi)幾個(gè)類似的網(wǎng)站以找到其規(guī)則
#?data是你爬取到的網(wǎng)站所有的內(nèi)容要解碼要讀取內(nèi)容pat='"pic_url":"//(.*?)"'
#?pat使用正則表達(dá)式從網(wǎng)頁(yè)爬取圖片
#?將你爬取到的內(nèi)容放在一個(gè)列表里面print(picturelist)#?可以不打印,也可以打印下來(lái)看看for?j?in?range(0,len(picturelist)):picture=picturelist[j]pictureurl="http://"+picture#?將列表里的內(nèi)容遍歷出來(lái),并加上http://轉(zhuǎn)到高清圖片file="E:/pycharm/vscode文件/圖片/"+str(i)+str(j)+".jpg"#?再把圖片逐張編號(hào),不然重復(fù)的名字將會(huì)被覆蓋掉urllib.request.urlretrieve(pictureurl,filename=file)#?最后保存到文件夾

02 通用爬蟲(chóng)技術(shù)

通用爬蟲(chóng)技術(shù)(general purpose Web crawler)也就是全網(wǎng)爬蟲(chóng)。其實(shí)現(xiàn)過(guò)程如下。

  • 第一,獲取初始URL。初始URL地址可以由用戶人為指定,也可以由用戶指定的某個(gè)或某幾個(gè)初始爬取網(wǎng)頁(yè)決定。

  • 第二,根據(jù)初始的URL爬取頁(yè)面并獲得新的URL。獲得初始的URL地址之后,需要先爬取對(duì)應(yīng)URL地址中的網(wǎng)頁(yè),接著將網(wǎng)頁(yè)存儲(chǔ)到原始數(shù)據(jù)庫(kù)中,并且在爬取網(wǎng)頁(yè)的同時(shí),發(fā)現(xiàn)新的URL地址,并且將已爬取的URL地址存放到一個(gè)URL列表中,用于去重及判斷爬取的進(jìn)程。

  • 第三,將新的URL放到URL隊(duì)列中,在于第二步內(nèi)獲取下一個(gè)新的URL地址之后,會(huì)將新的URL地址放到URL隊(duì)列中。

  • 第四,從URL隊(duì)列中讀取新的URL,并依據(jù)新的URL爬取網(wǎng)頁(yè),同時(shí)從新的網(wǎng)頁(yè)中獲取新的URL并重復(fù)上述的爬取過(guò)程。

  • 第五,滿足爬蟲(chóng)系統(tǒng)設(shè)置的停止條件時(shí),停止爬取。在編寫(xiě)爬蟲(chóng)的時(shí)候,一般會(huì)設(shè)置相應(yīng)的停止條件。如果沒(méi)有設(shè)置停止條件,爬蟲(chóng)便會(huì)一直爬取下去,一直到無(wú)法獲取新的URL地址為止,若設(shè)置了停止條件,爬蟲(chóng)則會(huì)在停止條件滿足時(shí)停止爬取。詳情請(qǐng)參見(jiàn)圖2-5中的右下子圖。

通用爬蟲(chóng)技術(shù)的應(yīng)用有著不同的爬取策略,其中的廣度優(yōu)先策略以及深度優(yōu)先策略都是比較關(guān)鍵的,如深度優(yōu)先策略的實(shí)施是依照深度從低到高的順序來(lái)訪問(wèn)下一級(jí)網(wǎng)頁(yè)鏈接。

關(guān)于通用爬蟲(chóng)使用方法的示例如下。

  • 【例2】爬取京東商品信息

'''
爬取京東商品信息:請(qǐng)求url:https://www.jd.com/提取商品信息:1.商品詳情頁(yè)2.商品名稱3.商品價(jià)格4.評(píng)價(jià)人數(shù)5.商品商家
'''
from?selenium?import?webdriver????#?引入selenium中的webdriver
from?selenium.webdriver.common.keys?import?Keys
import?timedef?get_good(driver):try:#?通過(guò)JS控制滾輪滑動(dòng)獲取所有商品信息js_code?=?'''window.scrollTo(0,5000);'''driver.execute_script(js_code)??#?執(zhí)行js代碼#?等待數(shù)據(jù)加載time.sleep(2)#?查找所有商品div#?good_div?=?driver.find_element_by_id('J_goodsList')good_list?=?driver.find_elements_by_class_name('gl-item')n?=?1for?good?in?good_list:#?根據(jù)屬性選擇器查找#?商品鏈接good_url?=?good.find_element_by_css_selector('.p-img?a').get_attribute('href')#?商品名稱good_name?=?good.find_element_by_css_selector('.p-name?em').text.replace("\n",?"--")#?商品價(jià)格good_price?=?good.find_element_by_class_name('p-price').text.replace("\n",?":")#?評(píng)價(jià)人數(shù)good_commit?=?good.find_element_by_class_name('p-commit').text.replace("\n",?"?")good_content?=?f'''商品鏈接:?{good_url}商品名稱:?{good_name}商品價(jià)格:?{good_price}評(píng)價(jià)人數(shù):?{good_commit}\n'''print(good_content)with?open('jd.txt',?'a',?encoding='utf-8')?as?f:f.write(good_content)next_tag?=?driver.find_element_by_class_name('pn-next')next_tag.click()time.sleep(2)#?遞歸調(diào)用函數(shù)get_good(driver)time.sleep(10)finally:driver.close()if?__name__?==?'__main__':good_name?=?input('請(qǐng)輸入爬取商品信息:').strip()driver?=?webdriver.Chrome()driver.implicitly_wait(10)#?往京東主頁(yè)發(fā)送請(qǐng)求driver.get('https://www.jd.com/')#?輸入商品名稱,并回車搜索input_tag?=?driver.find_element_by_id('key')input_tag.send_keys(good_name)input_tag.send_keys(Keys.ENTER)time.sleep(2)get_good(driver)

03 增量爬蟲(chóng)技術(shù)

某些網(wǎng)站會(huì)定時(shí)在原有網(wǎng)頁(yè)數(shù)據(jù)的基礎(chǔ)上更新一批數(shù)據(jù)。例如某電影網(wǎng)站會(huì)實(shí)時(shí)更新一批最近熱門(mén)的電影,小說(shuō)網(wǎng)站會(huì)根據(jù)作者創(chuàng)作的進(jìn)度實(shí)時(shí)更新最新的章節(jié)數(shù)據(jù)等。在遇到類似的場(chǎng)景時(shí),我們便可以采用增量式爬蟲(chóng)。

增量爬蟲(chóng)技術(shù)(incremental Web crawler)就是通過(guò)爬蟲(chóng)程序監(jiān)測(cè)某網(wǎng)站數(shù)據(jù)更新的情況,以便可以爬取到該網(wǎng)站更新后的新數(shù)據(jù)。

關(guān)于如何進(jìn)行增量式的爬取工作,以下給出三種檢測(cè)重復(fù)數(shù)據(jù)的思路:

  1. 在發(fā)送請(qǐng)求之前判斷這個(gè)URL是否曾爬取過(guò);

  2. 在解析內(nèi)容后判斷這部分內(nèi)容是否曾爬取過(guò);

  3. 寫(xiě)入存儲(chǔ)介質(zhì)時(shí)判斷內(nèi)容是否已存在于介質(zhì)中。

  • 第一種思路適合不斷有新頁(yè)面出現(xiàn)的網(wǎng)站,比如小說(shuō)的新章節(jié)、每天的實(shí)時(shí)新聞等;

  • 第二種思路則適合頁(yè)面內(nèi)容會(huì)定時(shí)更新的網(wǎng)站;

  • 第三種思路則相當(dāng)于最后一道防線。這樣做可以最大限度地達(dá)到去重的目的。

不難發(fā)現(xiàn),實(shí)現(xiàn)增量爬取的核心是去重。目前存在兩種去重方法

  • 第一,對(duì)爬取過(guò)程中產(chǎn)生的URL進(jìn)行存儲(chǔ),存儲(chǔ)在Redis的set中。當(dāng)下次進(jìn)行數(shù)據(jù)爬取時(shí),首先在存儲(chǔ)URL的set中對(duì)即將發(fā)起的請(qǐng)求所對(duì)應(yīng)的URL進(jìn)行判斷,如果存在則不進(jìn)行請(qǐng)求,否則才進(jìn)行請(qǐng)求。

  • 第二,對(duì)爬取到的網(wǎng)頁(yè)內(nèi)容進(jìn)行唯一標(biāo)識(shí)的制定(數(shù)據(jù)指紋),然后將該唯一標(biāo)識(shí)存儲(chǔ)至Redis的set中。當(dāng)下次爬取到網(wǎng)頁(yè)數(shù)據(jù)的時(shí)候,在進(jìn)行持久化存儲(chǔ)之前,可以先判斷該數(shù)據(jù)的唯一標(biāo)識(shí)在Redis的set中是否存在,從而決定是否進(jìn)行持久化存儲(chǔ)。

關(guān)于增量爬蟲(chóng)的使用方法示例如下所示。

  • 【例3】爬取4567tv網(wǎng)站中所有的電影詳情數(shù)據(jù)

import?scrapy
from?scrapy.linkextractors?import?LinkExtractor
from?scrapy.spiders?import?CrawlSpider,?Rule
from?redis?import?Redis
from?incrementPro.items?import?IncrementproItem
class?MovieSpider(CrawlSpider):name?=?'movie'#?allowed_domains?=?['www.xxx.com']start_urls?=?['http://www.4567tv.tv/frim/index7-11.html']rules?=?(Rule(LinkExtractor(allow=r'/frim/index7-\d+\.html'),?callback='parse_item',?follow=True),)#?創(chuàng)建Redis鏈接對(duì)象conn?=?Redis(host='127.0.0.1',?port=6379)def?parse_item(self,?response):li_list?=?response.xpath('//li[@class="p1?m1"]')for?li?in?li_list:#?獲取詳情頁(yè)的urldetail_url?=?'http://www.4567tv.tv'?+?li.xpath('./a/@href').extract_first()#?將詳情頁(yè)的url存入Redis的set中ex?=?self.conn.sadd('urls',?detail_url)if?ex?==?1:print('該url沒(méi)有被爬取過(guò),可以進(jìn)行數(shù)據(jù)的爬取')yield?scrapy.Request(url=detail_url,?callback=self.parst_detail)else:print('數(shù)據(jù)還沒(méi)有更新,暫無(wú)新數(shù)據(jù)可爬取!')#?解析詳情頁(yè)中的電影名稱和類型,進(jìn)行持久化存儲(chǔ)def?parst_detail(self,?response):item?=?IncrementproItem()item['name']?=?response.xpath('//dt[@class="name"]/text()').extract_first()item['kind']?=?response.xpath('//div[@class="ct-c"]/dl/dt[4]//text()').extract()item['kind']?=?''.join(item['kind'])yield?it

管道文件:

from?redis?import?Redis
class?IncrementproPipeline(object):conn?=?Nonedef?open_spider(self,spider):self.conn?=?Redis(host='127.0.0.1',port=6379)def?process_item(self,?item,?spider):dic?=?{'name':item['name'],'kind':item['kind']}print(dic)self.conn.push('movieData',dic)????#?如果push不進(jìn)去,那么dic變成str(dic)或者改變r(jià)edis版本???pip?install?-U?redis==2.10.6return?item

04 深層網(wǎng)絡(luò)爬蟲(chóng)技術(shù)

在互聯(lián)網(wǎng)中,網(wǎng)頁(yè)按存在方式可以分為表層網(wǎng)頁(yè)深層網(wǎng)頁(yè)兩類。

所謂的表層網(wǎng)頁(yè),指的是不需要提交表單,使用靜態(tài)的鏈接就能夠到達(dá)的靜態(tài)頁(yè)面;而深層網(wǎng)頁(yè)則隱藏在表單后面,不能通過(guò)靜態(tài)鏈接直接獲取,是需要提交一定的關(guān)鍵詞后才能夠獲取到的頁(yè)面,深層網(wǎng)絡(luò)爬蟲(chóng)(deep Web crawler)最重要的部分即為表單填寫(xiě)部分。

在互聯(lián)網(wǎng)中,深層網(wǎng)頁(yè)的數(shù)量往往要比表層網(wǎng)頁(yè)的數(shù)量多很多,故而,我們需要想辦法爬取深層網(wǎng)頁(yè)。

深層網(wǎng)絡(luò)爬蟲(chóng)的基本構(gòu)成:URL列表、LVS列表(LVS指的是標(biāo)簽/數(shù)值集合,即填充表單的數(shù)據(jù)源)、爬行控制器、解析器、LVS控制器、表單分析器、表單處理器、響應(yīng)分析器。

深層網(wǎng)絡(luò)爬蟲(chóng)的表單填寫(xiě)有兩種類型:

  • 基于領(lǐng)域知識(shí)的表單填寫(xiě)(建立一個(gè)填寫(xiě)表單的關(guān)鍵詞庫(kù),在需要的時(shí)候,根據(jù)語(yǔ)義分析選擇對(duì)應(yīng)的關(guān)鍵詞進(jìn)行填寫(xiě));

  • 基于網(wǎng)頁(yè)結(jié)構(gòu)分析的表單填寫(xiě)(一般在領(lǐng)域知識(shí)有限的情況下使用,這種方式會(huì)根據(jù)網(wǎng)頁(yè)結(jié)構(gòu)進(jìn)行分析,并自動(dòng)地進(jìn)行表單填寫(xiě))。

http://m.aloenet.com.cn/news/37992.html

相關(guān)文章:

  • 實(shí)名網(wǎng)站審核中心網(wǎng)站建設(shè)與網(wǎng)頁(yè)設(shè)計(jì)制作
  • 網(wǎng)站建設(shè)公司巨頭泰州seo推廣
  • 網(wǎng)站設(shè)計(jì) app開(kāi)發(fā)優(yōu)化關(guān)鍵詞排名公司
  • 網(wǎng)站制作論壇網(wǎng)站推廣怎么弄
  • 松山湖仿做網(wǎng)站關(guān)聯(lián)詞有哪些四年級(jí)
  • 中國(guó)建設(shè)銀行官網(wǎng)站代發(fā)工資濰坊關(guān)鍵詞優(yōu)化軟件
  • 中國(guó)建設(shè)銀行濟(jì)南招聘信息網(wǎng)站google搜索app下載
  • WordPress金融網(wǎng)站seo課程排行榜
  • 視頻網(wǎng)站如何做seo如何做電商賺錢(qián)
  • 四川省建設(shè)信息網(wǎng)站貴州seo學(xué)校
  • 南昌網(wǎng)站建設(shè)培訓(xùn)班seo優(yōu)化基礎(chǔ)教程pdf
  • qq整人網(wǎng)站怎么做百度首頁(yè)百度一下
  • 新鄉(xiāng)營(yíng)銷型網(wǎng)站建設(shè)產(chǎn)品營(yíng)銷推廣策略
  • 百度站長(zhǎng)怎么做網(wǎng)站維護(hù)二級(jí)域名查詢?nèi)肟?/a>
  • 一學(xué)一做看視頻網(wǎng)站網(wǎng)站推廣的渠道有哪些
  • 做網(wǎng)站頁(yè)面該建多大的畫(huà)布以圖搜圖百度識(shí)圖
  • 做網(wǎng)站用java還是c語(yǔ)言專業(yè)推廣引流團(tuán)隊(duì)
  • 網(wǎng)站維護(hù)一般多久上海優(yōu)化外包
  • 法院文化建設(shè)網(wǎng)站女孩短期技能培訓(xùn)班
  • 網(wǎng)站后臺(tái)管理系統(tǒng)制作教程長(zhǎng)春網(wǎng)站優(yōu)化哪家好
  • 營(yíng)銷型網(wǎng)站制作哪家好網(wǎng)絡(luò)營(yíng)銷的特點(diǎn)
  • 網(wǎng)站建設(shè)方案及預(yù)算百度上做優(yōu)化一年多少錢(qián)
  • 湛江網(wǎng)站的建設(shè)網(wǎng)站關(guān)鍵詞優(yōu)化推廣哪家快
  • 網(wǎng)站中的qq客服怎么做班級(jí)優(yōu)化大師是干什么用的
  • 如何推廣運(yùn)營(yíng)網(wǎng)站百度付費(fèi)推廣
  • 網(wǎng)站建設(shè)頭部代碼網(wǎng)站描述和關(guān)鍵詞怎么寫(xiě)
  • 長(zhǎng)沙私人做網(wǎng)站現(xiàn)在推廣平臺(tái)哪家最好
  • wordpress和emlog重慶seo和網(wǎng)絡(luò)推廣
  • 網(wǎng)站開(kāi)發(fā)文檔管理工具韓國(guó)網(wǎng)站
  • 淄博網(wǎng)站建設(shè)相關(guān)文章如何快速推廣