日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬虫实习小结

發布時間:2023/12/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫实习小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這兩天找了個實習,名義是python工程師,其實就是寫爬蟲+整合到django。實習很奇葩,還有試用期的,現在試用期過了等后續安排,正好整理下這幾天寫爬蟲的一些心得體會。


首先,感覺寫爬蟲真的是個經驗活,一般的網站說白了就是不停往request里試參數。直接爬不行加headers=試試,看有提交的表單就加個data=試試。這里要區分下的是POST方法對應的是Form Data,可以通過request的data參數實現

request.post(data=data)

而GET方法對應的是Query String Parameters,一般采用拼接url的方法

base_url+urllib.urlencode(data)

至于提交表單的內容是什么,就要靠自己看html的標簽或者js的函數得知,一般來說都能在html的源碼里搜索到,可能是商品id,可能是頁面相對路徑的一部分,可能和時間相關,當然那些反爬網站提交的表單都是加密的,要想真正破解就要靠猜和試了。


然后對于一些需要模擬登錄的網站,不需要驗證碼的話利用上面說的GET和POST表單應該就能解決,但有的網站還需要提供cookies,這時request就要包含cookies參數了。

requests.get(url, headers=header, cookies=cookie_dict)
而對于一些需要驗證碼登錄的網站,也可以考慮先登錄進去,然后復制下來登陸后的cookies,再利用其模仿登陸后的狀態,但這招不一定總能成功。

說到這里突然想起之前爬學校能源網站查電費時,它一個非登錄功能居然也要提供cookies才能成功響應,不知道是不是和框架有關,但總覺得好多此一舉...


最后想說,之前碰到爬不動的網站,就想用phantomjs+selenium,因為感覺理論上沒有這個方法爬不了的網站,但在實習時候就遇到了不行的情況,現在也沒搞懂為什么。不過拋開個案不談,phantomjs雖然好用,可現在越發覺得用它就和作弊一樣,因為它就是個瀏覽器啊!個人用來爬少量數據還好,如果要爬商業用的大量數據request才是正道,畢竟用phantomjs比你直接用瀏覽器的效率都高不出哪里去。


總之無論是headers,data還是cookies,爬蟲的精髓就是要盡可能的模仿真實瀏覽器的登錄過程(知乎live 董偉明大大講的),但抓到的包里有那么多參數,完全加進去不可能也沒必要。至于具體使用哪些參數才能奏效,真的就要靠經驗了。據說有那種層層迭代的反爬方法?上一個接受包含下一個請求的參數,但這種連環套路我還沒有正是爬成功過,所以也不敢斷言。


最后好想吐槽下這個實習,糟糕的老板(半懂不懂態度惡劣還固執僵硬),年幼的開發團隊(真正在做事的就兩個學生,一個異地的組長,一個半吊子的我...),混亂的代碼管理(開發人員都是實習學生,更迭頻繁,導致代碼風格迥異,可讀性健全性模塊化都好差)。別說公司給不給留任,我自己都不想做了,但一想這是珍貴的第一份IT實習啊,就有不想放棄,哎呀,好煩。


說到這里突然想起之前爬學校能源網站查電費時,它一個非登錄功能居然也要提供cookies才能成功響應,不知道是不是和框架有關,但總覺得好多此一舉...

總結

以上是生活随笔為你收集整理的爬虫实习小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。