Ⅰ 有哪些網站用爬蟲爬取能得到很有價值的數據
一般有一下幾種
一些常用的方法
IP代理
對於IP代理,各個語言的Native
Request
API都提供的IP代理響應的API,
需要解決的主要就是IP源的問題了.
網路上有廉價的代理IP(1元4000個左右),
我做過簡單的測試,
100個IP中,
平均可用的在40-60左右,
訪問延遲均在200以上.
網路有高質量的代理IP出售,
前提是你有渠道.
因為使用IP代理後,
延遲加大,
失敗率提高,
所以可以將爬蟲框架中將請求設計為非同步,
將請求任務加入請求隊列(RabbitMQ,Kafka,Redis),
調用成功後再進行回調處理,
失敗則重新加入隊列.
每次請求都從IP池中取IP,
如果請求失敗則從IP池中刪除該失效的IP.
Cookies
有一些網站是基於cookies做反爬蟲,
這個基本上就是如
@朱添一
所說的,
維護一套Cookies池
注意研究下目標網站的cookies過期事件,
可以模擬瀏覽器,
定時生成cookies
限速訪問
像開多線程,循環無休眠的的暴力爬取數據,
那真是分分鍾被封IP的事,
限速訪問實現起來也挺簡單(用任務隊列實現),
效率問題也不用擔心,
一般結合IP代理已經可以很快地實現爬去目標內容.
一些坑
大批量爬取目標網站的內容後,
難免碰到紅線觸發對方的反爬蟲機制.
所以適當的告警提示爬蟲失效是很有必有的.
一般被反爬蟲後,
請求返回的HttpCode為403的失敗頁面,
有些網站還會返回輸入驗證碼(如豆瓣),
所以檢測到403調用失敗,
就發送報警,
可以結合一些監控框架,
如Metrics等,
設置短時間內,
告警到達一定閥值後,
給你發郵件,簡訊等.
當然,
單純的檢測403錯誤並不能解決所有情況.
有一些網站比較奇葩,
反爬蟲後返回的頁面仍然是200的(如去哪兒),
這時候往往爬蟲任務會進入解析階段,
解析失敗是必然的.
應對這些辦法,
也只能在解析失敗的時候,
發送報警,
當告警短時間到達一定閥值,
再觸發通知事件.
當然這個解決部分並不完美,
因為有時候,
因為網站結構改變,
而導致解析失敗,
同樣回觸發告警.
而你並不能很簡單地區分,
告警是由於哪個原因引起的.
Ⅱ 爬蟲可以爬手機百度嗎可以爬去用戶瀏覽網頁信息嗎
這個是不可以的,一般的話防護系統還是比較高的,你是進不去的
Ⅲ python爬蟲可以爬哪些網站
理論上可以爬任何網站。
但是爬取內容時一定要慎重,有些底線不能觸碰,否則很有可能真的爬進去!
Ⅳ 百度爬蟲最喜歡什麼樣的網站
蜘蛛最喜歡爬符合它符合規則的網站,一般的規則有
權重高(十分重要)
原創型(如果權重過低,原創估計也不爬)
靜態化(不過這個並不是很重要的)
另外就是代碼整潔,有條理,且簡單的。
尤其是網站內容,標題,關鍵字等等的,
最最重要的是更新率也要高。如果一直不更新蜘蛛也懶得爬你,
要想蜘蛛爬的話,多做外鏈,且是有質量的外聯,垃圾的就算了!
更多的,可以聯系我,給你發一點我總結的網站優化規則文檔。。。
Ⅳ 一個網站除了百度以外爬蟲其爬蟲是那哪些呀
一搜蜘蛛,搜狗蜘蛛,AhrefsAhrefs蜘蛛,谷歌蜘蛛,360蜘蛛,網路,微軟bing,雅虎蜘蛛
答案滿意採納下唄,順便點個贊~謝啦
Ⅵ 哪些網站限制網路爬蟲
一些不希望爬蟲經常更新的網站,比如靜態頁面的網站,沒必要讓爬蟲更新
大的網站全都是實名抓取呢
還有taobao
Ⅶ Python爬蟲可以爬取什麼
Python爬蟲可以爬取的東西有很多,Python爬蟲怎麼學?簡單的分析下:
如果你仔細觀察,就不難發現,懂爬蟲、學習爬蟲的人越來越多,一方面,互聯網可以獲取的數據越來越多,另一方面,像 Python這樣的編程語言提供越來越多的優秀工具,讓爬蟲變得簡單、容易上手。
利用爬蟲我們可以獲取大量的價值數據,從而獲得感性認識中不能得到的信息,比如:
知乎:爬取優質答案,為你篩選出各話題下最優質的內容。
淘寶、京東:抓取商品、評論及銷量數據,對各種商品及用戶的消費場景進行分析。
安居客、鏈家:抓取房產買賣及租售信息,分析房價變化趨勢、做不同區域的房價分析。
拉勾網、智聯:爬取各類職位信息,分析各行業人才需求情況及薪資水平。
雪球網:抓取雪球高回報用戶的行為,對股票市場進行分析和預測。
爬蟲是入門Python最好的方式,沒有之一。Python有很多應用的方向,比如後台開發、web開發、科學計算等等,但爬蟲對於初學者而言更友好,原理簡單,幾行代碼就能實現基本的爬蟲,學習的過程更加平滑,你能體會更大的成就感。
掌握基本的爬蟲後,你再去學習Python數據分析、web開發甚至機器學習,都會更得心應手。因為這個過程中,Python基本語法、庫的使用,以及如何查找文檔你都非常熟悉了。
對於小白來說,爬蟲可能是一件非常復雜、技術門檻很高的事情。比如有人認為學爬蟲必須精通 Python,然後哼哧哼哧系統學習 Python 的每個知識點,很久之後發現仍然爬不了數據;有的人則認為先要掌握網頁的知識,遂開始 HTMLCSS,結果入了前端的坑,瘁……
但掌握正確的方法,在短時間內做到能夠爬取主流網站的數據,其實非常容易實現,但建議你從一開始就要有一個具體的目標。
在目標的驅動下,你的學習才會更加精準和高效。那些所有你認為必須的前置知識,都是可以在完成目標的過程中學到的。這里給你一條平滑的、零基礎快速入門的學習路徑。
1.學習 Python 包並實現基本的爬蟲過程
2.了解非結構化數據的存儲
3.學習scrapy,搭建工程化爬蟲
4.學習資料庫知識,應對大規模數據存儲與提取
5.掌握各種技巧,應對特殊網站的反爬措施
6.分布式爬蟲,實現大規模並發採集,提升效率
一
學習 Python 包並實現基本的爬蟲過程
大部分爬蟲都是按「發送請求——獲得頁面——解析頁面——抽取並儲存內容」這樣的流程來進行,這其實也是模擬了我們使用瀏覽器獲取網頁信息的過程。
Python中爬蟲相關的包很多:urllib、requests、bs4、scrapy、pyspider 等,建議從requests+Xpath 開始,requests 負責連接網站,返回網頁,Xpath 用於解析網頁,便於抽取數據。
如果你用過 BeautifulSoup,會發現 Xpath 要省事不少,一層一層檢查元素代碼的工作,全都省略了。這樣下來基本套路都差不多,一般的靜態網站根本不在話下,豆瓣、糗事網路、騰訊新聞等基本上都可以上手了。
當然如果你需要爬取非同步載入的網站,可以學習瀏覽器抓包分析真實請求或者學習Selenium來實現自動化,這樣,知乎、時光網、貓途鷹這些動態的網站也可以迎刃而解。
二
了解非結構化數據的存儲
爬回來的數據可以直接用文檔形式存在本地,也可以存入資料庫中。
開始數據量不大的時候,你可以直接通過 Python 的語法或 pandas 的方法將數據存為csv這樣的文件。
當然你可能發現爬回來的數據並不是干凈的,可能會有缺失、錯誤等等,你還需要對數據進行清洗,可以學習 pandas 包的基本用法來做數據的預處理,得到更干凈的數據。
三
學習 scrapy,搭建工程化的爬蟲
掌握前面的技術一般量級的數據和代碼基本沒有問題了,但是在遇到非常復雜的情況,可能仍然會力不從心,這個時候,強大的 scrapy 框架就非常有用了。
scrapy 是一個功能非常強大的爬蟲框架,它不僅能便捷地構建request,還有強大的 selector 能夠方便地解析 response,然而它最讓人驚喜的還是它超高的性能,讓你可以將爬蟲工程化、模塊化。
學會 scrapy,你可以自己去搭建一些爬蟲框架,你就基本具備爬蟲工程師的思維了。
四
學習資料庫基礎,應對大規模數據存儲
爬回來的數據量小的時候,你可以用文檔的形式來存儲,一旦數據量大了,這就有點行不通了。所以掌握一種資料庫是必須的,學習目前比較主流的 MongoDB 就OK。
MongoDB 可以方便你去存儲一些非結構化的數據,比如各種評論的文本,圖片的鏈接等等。你也可以利用PyMongo,更方便地在Python中操作MongoDB。
因為這里要用到的資料庫知識其實非常簡單,主要是數據如何入庫、如何進行提取,在需要的時候再學習就行。
五
掌握各種技巧,應對特殊網站的反爬措施
當然,爬蟲過程中也會經歷一些絕望啊,比如被網站封IP、比如各種奇怪的驗證碼、userAgent訪問限制、各種動態載入等等。
遇到這些反爬蟲的手段,當然還需要一些高級的技巧來應對,常規的比如訪問頻率控制、使用代理IP池、抓包、驗證碼的OCR處理等等。
往往網站在高效開發和反爬蟲之間會偏向前者,這也為爬蟲提供了空間,掌握這些應對反爬蟲的技巧,絕大部分的網站已經難不到你了.
六
分布式爬蟲,實現大規模並發採集
爬取基本數據已經不是問題了,你的瓶頸會集中到爬取海量數據的效率。這個時候,相信你會很自然地接觸到一個很厲害的名字:分布式爬蟲。
分布式這個東西,聽起來很恐怖,但其實就是利用多線程的原理讓多個爬蟲同時工作,需要你掌握 Scrapy + MongoDB + Redis 這三種工具。
Scrapy 前面我們說過了,用於做基本的頁面爬取,MongoDB 用於存儲爬取的數據,Redis 則用來存儲要爬取的網頁隊列,也就是任務隊列。
所以有些東西看起來很嚇人,但其實分解開來,也不過如此。當你能夠寫分布式的爬蟲的時候,那麼你可以去嘗試打造一些基本的爬蟲架構了,實現一些更加自動化的數據獲取。
你看,這一條學習路徑下來,你已然可以成為老司機了,非常的順暢。所以在一開始的時候,盡量不要系統地去啃一些東西,找一個實際的項目(開始可以從豆瓣、小豬這種簡單的入手),直接開始就好。
因為爬蟲這種技術,既不需要你系統地精通一門語言,也不需要多麼高深的資料庫技術,高效的姿勢就是從實際的項目中去學習這些零散的知識點,你能保證每次學到的都是最需要的那部分。
當然唯一麻煩的是,在具體的問題中,如何找到具體需要的那部分學習資源、如何篩選和甄別,是很多初學者面臨的一個大問題。
以上就是我的回答,希望對你有所幫助,望採納。
Ⅷ python爬蟲可以爬網頁哪些信息
所有網頁都行啊。爬蟲與反爬蟲,只看你會不會,而不是能不能
Ⅸ Python網站爬蟲只能爬自己所選的網址
思路
網站地圖(首先爬一個網站的首頁,然後得到首頁裡面的超鏈接,這樣就可以得到這個網站的二級頁面,然後繼續,最終爬去這個網站所有的頁面)
互聯網(假如你得到了一個超鏈接,那麼就可以得到另一個,就可以繼續得到另一個,繼續下去,就可以得到整個互聯網)
注意:
抓取數據時,需要分析特定網站的結構,一遍能抓取特定的數據
抓取的時候,應該支持多線程,這樣才能在有限的生命中爬取完需要的數據
Ⅹ zhuan:有哪些網站用爬蟲爬取能得到很
一般有一下幾種 一些常用的方法 IP代理 對於IP代理,各個語言的Native Request API都提供的IP代理響應的API, 需要解決的主要就是IP源的問題了. 網路上有廉價的代理IP(1元4000個左右), 我做過簡單的測試, 100個IP中, 平均可用的在40-60左右, 訪問延遲均在200以上. 網路有高質量的代理IP出售, 前提是你有渠道. 因為使用IP代理後, 延遲加大, 失敗率提高, 所以可以將爬蟲框架中將請求設計為非同步, 將請求任務加入請求隊列(RabbitMQ,Kafka,Redis), 調用成功後再進行回調處理, 失敗則重新加入隊列. 每次請求都從IP池中取IP, 如果請求失敗則從IP池中刪除該失效的IP. Cookies 有一些網站是基於cookies做反爬蟲, 這個基本上就是如 @朱添一 所說的, 維護一套Cookies池 注意研究下目標網站的cookies過期事件, 可以模擬瀏覽器, 定時生成cookies 限速訪問 像開多線程,循環無休眠的的暴力爬取數據, 那真是分分鍾被封IP的事, 限速訪問實現起來也挺簡單(用任務隊列實現), 效率問題也不用擔心, 一般結合IP代理已經可以很快地實現爬去目標內容. 一些坑 大批量爬取目標網站的內容後, 難免碰到紅線觸發對方的反爬蟲機制. 所以適當的告警提示爬蟲失效是很有必有的. 一般被反爬蟲後, 請求返回的HttpCode為403的失敗頁面, 有些網站還會返回輸入驗證碼(如豆瓣), 所以檢測到403調用失敗, 就發送報警, 可以結合一些監控框架, 如Metrics等, 設置短時間內, 告警到達一定閥值後, 給你發郵件,簡訊等. 當然, 單純的檢測403錯誤並不能解決所有情況. 有一些網站比較奇葩, 反爬蟲後返回的頁面仍然是200的(如去哪兒), 這時候往往爬蟲任務會進入解析階段, 解析失敗是必然的. 應對這些辦法, 也只能在解析失敗的時候, 發送報警, 當告警短時間到達一定閥值, 再觸發通知事件. 當然這個解決部分並不完美, 因為有時候, 因為網站結構改變, 而導致解析失敗, 同樣回觸發告警. 而你並不能很簡單地區分, 告警是由於哪個原因引起的.