中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

濰坊仿站定制模板建站圖片外鏈上傳網站

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

圖片

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

  • 增量抓取意即針對某個站點的數據進行抓取,當網站的新增數據或者該站點的數據發(fā)生變化后,自動地抓取它新增的或者變化后的數據。

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

  • 表層網頁是指傳統(tǒng)搜索引擎可以索引的頁面,即以超鏈接可以到達的靜態(tài)網頁為主來構成的Web頁面。

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

01 聚焦爬蟲技術

聚焦網絡爬蟲(focused crawler)也就是主題網絡爬蟲。聚焦爬蟲技術增加了鏈接評價和內容評價模塊,其爬行策略實現要點就是評價頁面內容以及鏈接的重要性。

基于鏈接評價的爬行策略,主要是以Web頁面作為半結構化文檔,其中擁有很多結構信息可用于評價鏈接重要性。還有一個是利用Web結構來評價鏈接價值的方法,也就是HITS法,其通過計算每個訪問頁面的Authority權重和Hub權重來決定鏈接訪問順序。

基于內容評價的爬行策略,主要是將與文本相似的計算法加以應用,提出Fish-Search算法,把用戶輸入查詢詞當作主題,在算法的進一步改進下,通過Shark-Search算法就能利用空間向量模型來計算頁面和主題相關度大小。

面向主題爬蟲,面向需求爬蟲:會針對某種特定的內容去爬取信息,而且會保證信息和需求盡可能相關。一個簡單的聚焦爬蟲使用方法的示例如下所示。

  • 【例1】一個簡單的爬取圖片的聚焦爬蟲

import?urllib.request#?爬蟲專用的包urllib,不同版本的Python需要下載不同的爬蟲專用包
import?re#?正則用來規(guī)律爬取
keyname=""#?想要爬取的內容
key=urllib.request.quote(keyname)#?需要將你輸入的keyname解碼,從而讓計算機讀懂
for?i?in?range(0,5):???#?(0,5)數字可以自己設置,是淘寶某產品的頁數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后面加上你想爬取的網站名,然后你需要多開幾個類似的網站以找到其規(guī)則
#?data是你爬取到的網站所有的內容要解碼要讀取內容pat='"pic_url":"//(.*?)"'
#?pat使用正則表達式從網頁爬取圖片
#?將你爬取到的內容放在一個列表里面print(picturelist)#?可以不打印,也可以打印下來看看for?j?in?range(0,len(picturelist)):picture=picturelist[j]pictureurl="http://"+picture#?將列表里的內容遍歷出來,并加上http://轉到高清圖片file="E:/pycharm/vscode文件/圖片/"+str(i)+str(j)+".jpg"#?再把圖片逐張編號,不然重復的名字將會被覆蓋掉urllib.request.urlretrieve(pictureurl,filename=file)#?最后保存到文件夾

02 通用爬蟲技術

通用爬蟲技術(general purpose Web crawler)也就是全網爬蟲。其實現過程如下。

  • 第一,獲取初始URL。初始URL地址可以由用戶人為指定,也可以由用戶指定的某個或某幾個初始爬取網頁決定。

  • 第二,根據初始的URL爬取頁面并獲得新的URL。獲得初始的URL地址之后,需要先爬取對應URL地址中的網頁,接著將網頁存儲到原始數據庫中,并且在爬取網頁的同時,發(fā)現新的URL地址,并且將已爬取的URL地址存放到一個URL列表中,用于去重及判斷爬取的進程。

  • 第三,將新的URL放到URL隊列中,在于第二步內獲取下一個新的URL地址之后,會將新的URL地址放到URL隊列中。

  • 第四,從URL隊列中讀取新的URL,并依據新的URL爬取網頁,同時從新的網頁中獲取新的URL并重復上述的爬取過程。

  • 第五,滿足爬蟲系統(tǒng)設置的停止條件時,停止爬取。在編寫爬蟲的時候,一般會設置相應的停止條件。如果沒有設置停止條件,爬蟲便會一直爬取下去,一直到無法獲取新的URL地址為止,若設置了停止條件,爬蟲則會在停止條件滿足時停止爬取。詳情請參見圖2-5中的右下子圖。

通用爬蟲技術的應用有著不同的爬取策略,其中的廣度優(yōu)先策略以及深度優(yōu)先策略都是比較關鍵的,如深度優(yōu)先策略的實施是依照深度從低到高的順序來訪問下一級網頁鏈接。

關于通用爬蟲使用方法的示例如下。

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

'''
爬取京東商品信息:請求url:https://www.jd.com/提取商品信息:1.商品詳情頁2.商品名稱3.商品價格4.評價人數5.商品商家
'''
from?selenium?import?webdriver????#?引入selenium中的webdriver
from?selenium.webdriver.common.keys?import?Keys
import?timedef?get_good(driver):try:#?通過JS控制滾輪滑動獲取所有商品信息js_code?=?'''window.scrollTo(0,5000);'''driver.execute_script(js_code)??#?執(zhí)行js代碼#?等待數據加載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:#?根據屬性選擇器查找#?商品鏈接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",?"--")#?商品價格good_price?=?good.find_element_by_class_name('p-price').text.replace("\n",?":")#?評價人數good_commit?=?good.find_element_by_class_name('p-commit').text.replace("\n",?"?")good_content?=?f'''商品鏈接:?{good_url}商品名稱:?{good_name}商品價格:?{good_price}評價人數:?{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)#?遞歸調用函數get_good(driver)time.sleep(10)finally:driver.close()if?__name__?==?'__main__':good_name?=?input('請輸入爬取商品信息:').strip()driver?=?webdriver.Chrome()driver.implicitly_wait(10)#?往京東主頁發(fā)送請求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 增量爬蟲技術

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

增量爬蟲技術(incremental Web crawler)就是通過爬蟲程序監(jiān)測某網站數據更新的情況,以便可以爬取到該網站更新后的新數據。

關于如何進行增量式的爬取工作,以下給出三種檢測重復數據的思路:

  1. 在發(fā)送請求之前判斷這個URL是否曾爬取過;

  2. 在解析內容后判斷這部分內容是否曾爬取過;

  3. 寫入存儲介質時判斷內容是否已存在于介質中。

  • 第一種思路適合不斷有新頁面出現的網站,比如小說的新章節(jié)、每天的實時新聞等;

  • 第二種思路則適合頁面內容會定時更新的網站;

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

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

  • 第一,對爬取過程中產生的URL進行存儲,存儲在Redis的set中。當下次進行數據爬取時,首先在存儲URL的set中對即將發(fā)起的請求所對應的URL進行判斷,如果存在則不進行請求,否則才進行請求。

  • 第二,對爬取到的網頁內容進行唯一標識的制定(數據指紋),然后將該唯一標識存儲至Redis的set中。當下次爬取到網頁數據的時候,在進行持久化存儲之前,可以先判斷該數據的唯一標識在Redis的set中是否存在,從而決定是否進行持久化存儲。

關于增量爬蟲的使用方法示例如下所示。

  • 【例3】爬取4567tv網站中所有的電影詳情數據

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鏈接對象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:#?獲取詳情頁的urldetail_url?=?'http://www.4567tv.tv'?+?li.xpath('./a/@href').extract_first()#?將詳情頁的url存入Redis的set中ex?=?self.conn.sadd('urls',?detail_url)if?ex?==?1:print('該url沒有被爬取過,可以進行數據的爬取')yield?scrapy.Request(url=detail_url,?callback=self.parst_detail)else:print('數據還沒有更新,暫無新數據可爬取!')#?解析詳情頁中的電影名稱和類型,進行持久化存儲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不進去,那么dic變成str(dic)或者改變redis版本???pip?install?-U?redis==2.10.6return?item

04 深層網絡爬蟲技術

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

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

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

深層網絡爬蟲的基本構成:URL列表、LVS列表(LVS指的是標簽/數值集合,即填充表單的數據源)、爬行控制器、解析器、LVS控制器、表單分析器、表單處理器、響應分析器。

深層網絡爬蟲的表單填寫有兩種類型:

  • 基于領域知識的表單填寫(建立一個填寫表單的關鍵詞庫,在需要的時候,根據語義分析選擇對應的關鍵詞進行填寫);

  • 基于網頁結構分析的表單填寫(一般在領域知識有限的情況下使用,這種方式會根據網頁結構進行分析,并自動地進行表單填寫)。

http://www.risenshineclean.com/news/37992.html

相關文章:

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