為什麼網路爬蟲好難,涉及到的知識我不會?
花了好長時間去解決一個再簡單不過的問題,學得都懵逼了
簡單爬蟲不難,無非發起http訪問,取得網頁的源代碼文本,從源代碼文本中抽取信息。
首先要自己會寫代碼。
學習爬蟲可以從下面一些知識點入手學習。
1、http相關知識。
2、瀏覽器攔截、抓包。
3、python2 中編碼知識,python3 中bytes 和str類型轉換。
4、抓取javascript 動態生成的內容。
5、模擬post、get,header等
6、cookie處理,登錄。
7、代理訪問。
8、多線程訪問、python 3 asyncio 非同步。
9、正則表達式、xpath等
等等。。。。
還有scrapy requests等第三方庫的使用。
請看看
Python爬蟲聯想詞視頻和代碼
知乎專欄
跟黃哥學Python爬蟲抓取代理IP和驗證。
知乎專欄
跟黃哥學Python爬蟲抓取代理IP
知乎專欄
重複造輪子的事情還是不要幹了,直接上八爪魚不就解決問題了。
其實很多東西都是需要知識積累的。上面的回答也有說的很到位的。
就像有一些簡單的破解是將彙編指令從jnz改成 jz一樣。你可以說只改動一個字母,但是對於新手來說就是登天還難。
爬蟲的學習,我覺得應該循序漸進。首先你要了解常用的工具的語法。
基礎的爬蟲,比如說從一個網站上爬圖片
你打開chrome -&>看一下網路請求-&>看一下網頁的源碼-&>找到目標圖片的url-&>寫個正則匹配一下目標圖片的url-&> 一些簡單的篩選過濾-&>將圖片download到本地-&>如果有下一頁去下一頁-&>重複上面的動作。
這個應該是一個很基礎的爬蟲動作了。了解了這個流程, 用你的代碼將整個流程表達出來就行了,
在你接觸的多了之後,你會遇到形形色色的站
比如說需要你登錄的, 你可能要用post,先 對網路請求抓包,然後在照葫蘆畫瓢模擬登錄。
然後在往後,你可能會遇到登錄需要輸入驗證碼的,可能你還需要接圖像 識別的介面。。
再往後,有些網站你的get請求跟網頁get請求的結果發現不太一樣,這個時候,你可能需要考慮是不是網站對haeder 的內容做了校驗。
再往後,你發現還有網站的內容是通過js生成的,你還要解析js,或者逆向考慮繞過js。
再往後,你可能會遇到限制訪問頻率的,甚至會封ip的
坑都是一步步躺過來的
但是最重要的一點還是基本功。
你如果做過遊戲,你基本不用學就會很清楚外掛怎麼搞,你如果開發過網站,你就會清楚爬蟲怎麼搞。半路出家最大的困難就是不懂得基礎的東西,然後看教程對於一些術語也感到雲里霧裡。
還有,實踐出真知
因為你沒有足夠多的知識儲備,那些說分分鐘學會爬蟲的人(他們懂html、css、js、http協議、Python),沒有這些基礎,看幾篇文章,就可以掌握爬蟲的人,那是天賦秉異,你行嗎?不行!就老老實實的打好基礎,再來寫爬蟲。
沒必要自己花時間和精力去學一個自己不擅長的東西,
專業的事情交給專業人,軟體存在的價值就在於此。
推薦使用爬山虎採集器來抓取數據,非常簡單,容易上手,內置多種引擎,可以智能識別網頁中的結構化數據。
我本來也以為簡單,知道我知道了一個網站,中國裁判信息網
這個網站令我絕望
不會不趕緊去好好學?問問為什麼就會了?
爬蟲的核心就是了解熟悉網路協議。其他語言只是作為工具 模擬這個請求而已
謝邀,問題主要在於你不懂爬蟲的原理
雲里霧裡,看是這麼多知識點,但其實就是獲取HTML,解析HTML罷了
另外,現在國內外都有很多現成的爬蟲產品或框架,站在別人的基礎之上,你可以少走許多彎路
利益相關:我們八爪魚就是一款爬蟲產品
解決問題的辦法有很多,當有興趣一心專研,是值得慢慢深入探究的,畢竟能熟悉代碼的人現在都是高科技頂尖人才,很多公司搶著要的。當興趣愛好研究著,學著開心,一個不小心還提升了個人價值。
如果題主只是為了完成工作任務而學習的爬蟲,不妨試試Octoparse,英文軟體,但是順便學英語,伺服器在美國還能採集一下普通採集器采不到的數據。
要系統寫一遍。真沒啥難度,推薦用plantomJS()做爬蟲,什麼瀏覽器頭,request,response,還有一些隱藏的input標籤都不用考慮
給你推薦個公眾號吧裡面有爬蟲教學視頻,我就是那裡學會的。公眾號:行文君
我覺得學爬蟲應該有3步。
第一步:模擬瀏覽器行為,這一步要求你必須知道http的請求過程,明白request和response,會一些簡單的控制邏輯。
第二步:工程化,任何的代碼、邏輯、抽象思維都可以復用,這點可以直接用框架,能力強的話可以直接寫框架。
第三步:DIY,框架永遠不能滿足你全部需求,這個時候就需要你根據自己的項目有針對性改造或新造框架來適應你的項目。
如果說還能下一步的話那應該和數據有關係了,竊以為那個領域不屬於爬蟲。
你應該屬於第一步還不會走的人,對症下藥吧,個人建議寫寫web,這一步應該就屬於直接看文檔了
凡事並不都是自己做才行,能交給別人做的自己統籌就可以了
謝邀,不難,難在你還沒有讀足夠多的資料或者沒有做足夠多的思考。多看多想,你會發現這個真的十分簡單。
推薦閱讀:
※做python爬蟲需要會web後端嗎,不會的話能做嗎?
※python3爬蟲中文亂碼問題求解?(beautifulsoup4)
※求大神們推薦python入門書籍(爬蟲方面)?
※python動態的網頁數據json里沒有中文字元怎麼辦?
※有沒有python爬蟲視頻教程推薦啊?