国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

極客小將

您現(xiàn)在的位置是:首頁 » python編程資訊

資訊內(nèi)容

深入理解Python分布式爬蟲原理

極客小將2021-01-10-
簡介python視頻教程欄目介紹分布式爬蟲原理。免費推薦:python視頻教程首先,我們先來看看,如果是人正常的行為,是如何獲取網(wǎng)頁內(nèi)容的。(1)打開瀏覽器,輸入URL,打開源網(wǎng)頁(2)選取我們想要的內(nèi)容,包括標題,作者,摘要,正文等信息(3)存儲到硬盤中上面的三個過程,映射到技術層面上,其實就是:網(wǎng)絡
python視頻教程欄目介紹分布式爬蟲原理。4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

免費推薦:python視頻教程4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

首先,我們先來看看,如果是人正常的行為,是如何獲取網(wǎng)頁內(nèi)容的。
4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(1)打開瀏覽器,輸入URL,打開源網(wǎng)頁
4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(2)選取我們想要的內(nèi)容,包括標題,作者,摘要,正文等信息
4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(3)存儲到硬盤中4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

上面的三個過程,映射到技術層面上,其實就是:網(wǎng)絡請求,抓取結構化數(shù)據(jù),數(shù)據(jù)存儲。
4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

我們使用Python寫一個簡單的程序,實現(xiàn)上面的簡單抓取功能。4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

#!/usr/bin/python #-*- coding: utf-8 -*- ''''' Created on 2014-03-16 @author: Kris ''' import urllib2, re, cookielib def httpCrawler(url): ''''' @summary: 網(wǎng)頁抓取 ''' content = httpRequest(url) title = parseHtml(content) saveData(title) def httpRequest(url): ''''' @summary: 網(wǎng)絡請求 ''' try: ret = None SockFile = None request = urllib2.Request(url) request.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)') request.add_header('Pragma', 'no-cache') opener = urllib2.build_opener() SockFile = opener.open(request) ret = SockFile.read() finally: if SockFile: SockFile.close() return ret def parseHtml(html): ''''' @summary: 抓取結構化數(shù)據(jù) ''' content = None pattern = '<title>([^<]*?)</title>' temp = re.findall(pattern, html) if temp: content = temp[0] return content def saveData(data): ''''' @summary: 數(shù)據(jù)存儲 ''' f = open('test', 'wb') f.write(data) f.close() if __name__ == '__main__': url = 'http://www.baidu.com' httpCrawler(url)

看著很簡單,是的,它就是一個爬蟲入門的基礎程序。當然,在實現(xiàn)一個采集過程,無非就是上面的幾個基礎步驟。但是實現(xiàn)一個強大的采集過程,你會遇到下面的問題:
4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(1)需要帶著cookie信息訪問,比如大多數(shù)的社交化軟件,基本上都是需要用戶登錄之后,才能看到有價值的東西,其實很簡單,我們可以使用Python提供的cookielib模塊,實現(xiàn)每次訪問都帶著源網(wǎng)站給的cookie信息去訪問,這樣只要我們成功模擬了登錄,爬蟲處于登錄狀態(tài),那么我們就可以采集到登錄用戶看到的一切信息了。下面是使用cookie對httpRequest()方法的修改:4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

ckjar = cookielib.MozillaCookieJar() cookies = urllib2.HTTPCookieProcessor(ckjar) #定義cookies對象 def httpRequest(url): ''''' @summary: 網(wǎng)絡請求 ''' try: ret = None SockFile = None request = urllib2.Request(url) request.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)') request.add_header('Pragma', 'no-cache') opener = urllib2.build_opener(cookies) #傳遞cookies對象 SockFile = opener.open(request) ret = SockFile.read() finally: if SockFile: SockFile.close() return ret

(2)編碼問題。網(wǎng)站目前**多的兩種編碼:utf-8,或者gbk,當我們采集回來源網(wǎng)站編碼和我們數(shù)據(jù)庫存儲的編碼不一致時,比如,163.com的編碼使用的是gbk,而我們需要存儲的是utf-8編碼的數(shù)據(jù),那么我們可以使用Python中提供的encode()和decode()方法進行轉換,比如:4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

content = content.decode('gbk', 'ignore') #將gbk編碼轉為unicode編碼 content = content.encode('utf-8', 'ignore') #將unicode編碼轉為utf-8編碼

中間出現(xiàn)了unicode編碼,我們需要轉為中間編碼unicode,才能向gbk或者utf-8轉換。4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(3)網(wǎng)頁中標簽不完整,比如有些源代碼中出現(xiàn)了起始標簽,但沒有結束標簽,HTML標簽不完整,就會影響我們抓取結構化數(shù)據(jù),我們可以通過Python的BeautifulSoup模塊,先對源代碼進行清洗,再分析獲取內(nèi)容。4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(4)某些網(wǎng)站使用JS來生存網(wǎng)頁內(nèi)容。當我們直接查看源代碼的時候,發(fā)現(xiàn)是一堆讓人頭疼的JS代碼??梢允褂胢ozilla、webkit等可以解析瀏覽器的工具包解析js、ajax,雖然速度會稍微慢點。4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(5)圖片是flash形式存在的。當圖片中的內(nèi)容是文字或者數(shù)字組成的字符,那這個就比較好辦,我們只要利用ocr技術,就能實現(xiàn)自動識別了,但是如果是flash鏈接,我們將整個URL存儲起來了。 4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(6)一個網(wǎng)頁出現(xiàn)多個網(wǎng)頁結構的情況,這樣我們?nèi)绻皇且惶鬃ト∫?guī)則,那肯定不行,所以需要配置多套模擬進行協(xié)助配合抓取。4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

(7)應對源網(wǎng)站的監(jiān)控。抓取別人的東西,畢竟是不太好的事情,所以一般網(wǎng)站都會有針對爬蟲禁止訪問的限制。
一個好的采集系統(tǒng),應該是,不管我們的目標數(shù)據(jù)在何處,只要是用戶能夠看到的,我們都能采集回來。所見即所得的無阻攔式采集,無論是否需要登錄的數(shù)據(jù)都能夠順利采集。大部分有價值的信息,一般都需要登錄才能看到,比如社交網(wǎng)站,為了應對登錄的網(wǎng)站要有模擬用戶登錄的爬蟲系統(tǒng),才能正常獲取數(shù)據(jù)。不過社會化網(wǎng)站都希望自己形成一個閉環(huán),不愿意把數(shù)據(jù)放到站外,這種系統(tǒng)也不會像新聞等內(nèi)容那么開放的讓人獲取。這些社會化網(wǎng)站大部分會采取一些限制防止機器人爬蟲系統(tǒng)爬取數(shù)據(jù),一般一個賬號爬取不了多久就會被檢測出來被禁止訪問了。那是不是我們就不能爬取這些網(wǎng)站的數(shù)據(jù)呢?肯定不是這樣的,只要社會化網(wǎng)站不關閉網(wǎng)頁訪問,正常人能夠訪問的數(shù)據(jù),我們也能訪問。說到底就是模擬人的正常行為操作,專業(yè)一點叫“反監(jiān)控”。4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

源網(wǎng)站一般會有下面幾種限制:
4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

1、一定時間內(nèi)單個IP訪問次數(shù),一個正常用戶訪問網(wǎng)站,除非是隨意的點著玩,否則不會在一段持續(xù)時間內(nèi)過快訪問一個網(wǎng)站,持續(xù)時間也不會太長。這個問題好辦,我們可以采用大量不規(guī)則代理IP形成一個代理池,隨機從代理池中選擇代理,模擬訪問。代理IP有兩種,透明代理和匿名代理。4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

2、一定時間內(nèi)單個賬號訪問次數(shù),如果一個人一天24小時都在訪問一個數(shù)據(jù)接口,而且速度非??欤蔷陀锌赡苁菣C器人了。我們可以采用大量行為正常的賬號,行為正常就是普通人怎么在社交網(wǎng)站上操作,并且單位時間內(nèi),訪問URL數(shù)目盡量減少,可以在每次訪問中間間隔一段時間,這個時間間隔可以是一個隨機值,即每次訪問完一個URL,隨機隨眠一段時間,再接著訪問下一個URL。
4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

如果能把賬號和IP的訪問策略控制好了,基本就沒什么問題了。當然對方網(wǎng)站也會有運維會調整策略,敵我雙方的一場較量,爬蟲必須要能感知到對方的反監(jiān)控將會對我們有影響,通知管理員及時處理。其實**理想的是能夠通過機器學習,智能的實現(xiàn)反監(jiān)控對抗,實現(xiàn)不間斷地抓取。
4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

下面是本人近期正在設計的一個分布式爬蟲架構圖,如圖1所示:4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

純屬拙作,初步思路正在實現(xiàn),正在搭建服務器和客戶端之間的通信,主要使用了Python的Socket模塊實現(xiàn)服務器端和客戶端的通信。如果有興趣,可以單獨和我聯(lián)系,共同探討完成更優(yōu)的方案。

以上就是深入理解Python分布式爬蟲原理的詳細內(nèi)容,更多請關注少兒編程網(wǎng)其它相關文章!4NQ少兒編程網(wǎng)-Scratch_Python_教程_免費兒童編程學習平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

        亚洲视频在线观看一区二区三区| 黄色aaa级片| 色诱视频在线观看| 欧美激情视频免费看| 国产探花在线观看视频| 天堂网在线免费观看| 成人黄色一区二区| 黄色免费网址大全| 亚洲欧洲日本精品| 一道本在线免费视频| www.com黄色片| 国产欧美激情视频| 艳母动漫在线免费观看| 亚洲热在线视频| 天天操天天干天天玩| 黑人巨大国产9丨视频| 成人免费a级片| 亚洲熟妇av日韩熟妇在线| 久久久999视频| 日韩一级理论片| 五月天六月丁香| 欧日韩免费视频| 欧美精品一区二区三区免费播放| 精品久久久噜噜噜噜久久图片| 噼里啪啦国语在线观看免费版高清版| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 中文字幕在线视频一区二区| 熟女视频一区二区三区| 国产九九九九九| 国产精品v日韩精品v在线观看| 日本一本在线视频| 亚洲 高清 成人 动漫| 15—17女人毛片| 糖心vlog在线免费观看| 久久精品视频16| 超碰人人草人人| koreanbj精品视频一区| 在线观看免费视频高清游戏推荐| 99久久久无码国产精品性色戒| 精品少妇一区二区三区在线| 天天看片天天操| 大陆极品少妇内射aaaaa| 特级西西444www| 日韩精品一区二区三区不卡| 日本黄色播放器| 北条麻妃视频在线| 三级av免费看| 妓院一钑片免看黄大片| 久久久久久久久久网| mm131午夜| www.这里只有精品| 国产在线观看中文字幕| 日韩在线视频在线观看| 9色视频在线观看| 亚洲第一色av| 奇米影视四色在线| 一本色道久久亚洲综合精品蜜桃| 国产一区二区三区小说| 黄色高清视频网站| 国产福利精品一区二区三区| 狠狠热免费视频| 91最新在线观看| 丰满少妇在线观看| 毛片在线播放视频| 成人国产在线看| 欧美日韩dvd| www.日本久久| 国产福利影院在线观看| 手机av在线网站| 男女高潮又爽又黄又无遮挡| 僵尸世界大战2 在线播放| 国产又粗又爽又黄的视频| 午夜视频你懂的| 北条麻妃av高潮尖叫在线观看| 欧美日韩亚洲一| 18禁网站免费无遮挡无码中文| 日韩精品一区二区三区电影| 中文字幕亚洲影院| 最新中文字幕久久| 日本天堂免费a| 免费不卡av在线| 日韩精品视频一区二区在线观看| 成人av在线不卡| 国产91对白刺激露脸在线观看| 久久久国产精华液999999 | 免费在线观看污污视频| 潘金莲一级淫片aaaaaa播放1| 91高清国产视频| 法国空姐在线观看免费| 欧美日韩视频免费| 男女激烈动态图| www.爱色av.com| 中文字幕第100页| 日本三日本三级少妇三级66| 成人在线视频一区二区三区| 欧美成人高潮一二区在线看| 超碰影院在线观看| 最新视频 - x88av| av之家在线观看| 国产乱女淫av麻豆国产| 日韩小视频网站| 在线观看免费av网址| 日韩在线观看a| 91国内在线播放| 蜜臀久久99精品久久久酒店新书| 国产又大又黄又粗又爽| 一级全黄肉体裸体全过程| 成人免费毛片网| 久艹在线免费观看| 国产日韩成人内射视频| a天堂资源在线观看| 国产一伦一伦一伦| 黄色片视频在线免费观看| 波多野结衣网页| 一区二区三区韩国| 精品这里只有精品| 亚洲色婷婷久久精品av蜜桃| 热久久精品免费视频| 成人午夜视频在线观看免费| 男女视频在线观看网站| 久久精品午夜福利| 成人免费观看cn| 国产精品国三级国产av| 日本一二三区在线| www.成人黄色| 黑森林精品导航| 久久精品香蕉视频| 午夜肉伦伦影院| 国产午夜伦鲁鲁| 成人小视频在线观看免费| 日韩人妻一区二区三区蜜桃视频| 日本成人xxx| 一级片免费在线观看视频| 天天操精品视频| 亚洲黄色av片| 欧美日韩在线免费观看视频| 91视频这里只有精品| www.久久久久久久久久久| 99视频在线观看视频| wwwjizzjizzcom| 国内精品在线观看视频| 欧美这里只有精品| 无罩大乳的熟妇正在播放| 成人性免费视频| 欧美成人免费高清视频| 天堂社区在线视频| 香蕉视频xxxx| 波多野结衣 作品| 成年人视频观看| 午夜免费福利视频在线观看| 在线观看岛国av| 成年在线观看视频| 久久久久久久久久久免费视频| 免费午夜视频在线观看| 日本www.色| 51xx午夜影福利| 妺妺窝人体色www在线小说| 久久久久久久久久久久91| 99精品一区二区三区的区别| 欧美日韩激情四射| 日韩少妇内射免费播放18禁裸乳| 亚洲中文字幕久久精品无码喷水 | 久久综合九色综合88i| 嫩草av久久伊人妇女超级a| 日本人69视频| 免费一级特黄特色毛片久久看| 精品久久久久av| 喜爱夜蒲2在线| 天天干天天玩天天操| 日本中文字幕在线视频观看| 天天干天天干天天干天天干天天干| 中文字幕第一页在线视频| cao在线观看| 国产不卡的av| 欧美性猛交久久久乱大交小说 | 黄页网站在线观看视频| 亚洲小视频网站| 能看的毛片网站| 国产精品久久久久9999爆乳| 国产高潮免费视频| 性欧美大战久久久久久久| 91欧美一区二区三区| 麻豆av免费在线| 免费国产a级片| 国产精品视频二| 喜爱夜蒲2在线| 亚洲黄色av片| 日本不卡一区在线| 一级在线免费视频| 蜜臀av午夜一区二区三区| 被灌满精子的波多野结衣| 手机成人av在线| 久久久久亚洲av无码专区喷水| 黑森林精品导航| 黄大色黄女片18第一次| 日本三区在线观看| 国产精品亚洲a| 在线观看高清免费视频| 男女啪啪网站视频| 爱爱爱爱免费视频|