
文章目錄
- 前言
- 關于動態網頁的json包
- 人機互動
- selenium自動化
前言
上一篇講的是爬蟲中的快取,相對來說比較難一點,而且不是直接面向網頁的,所以可能會比較無聊一點吧,
這一篇我們來講當遇到動態網頁時候的另一種處理辦法,即json抓包處理,
然后呢,再講一下界面互動相關的事情,
為什么能講這么多呢?因為之前都講好了,現在總結一下再深化一點啦,
關于動態網頁的json包
和單頁面應用的簡單表單事件不同,使用 JavaScript 時,不再是加載后立即下載頁面全部內容,這種架構會造成許多網頁在瀏覽器中展示的內容可能不會出現在 HTML 源代碼中,我們在前面介紹的抓取技術也就無法抽取網站的重要資訊了,
這篇帶上了幾個例子講解了為什么要用json,以及該如何抓包的問題,喜歡的人還不少:我要偷偷的學Python,然后驚呆所有人(第九天)
講了爬取CSDN我自己的文章的時候,網頁代碼倒是爬下來了,但是評論區資料卻被 ‘隱藏’ 了,并沒有顯示出來啊!!!
后面用了json串,終于找到了那 ‘丟失的’ 資料,
除了這種原始碼里面不帶界面資訊的情況,更多的時候我是在獲取cookie的時候要用到json決議技術,
為什么呢?因為json串所在的網址我并不知道啊,這就意味著我得自己去走一遍流程啊!!!!!

人機互動
看一下我之前關于cookie和session的介紹吧:我要偷偷的學Python,然后驚呆所有人(第十一天)
敏感資料只應使用 POST 請求進行發送,以避免將資料暴露在 URL 中,
如果你一定說要自力更生,用post方法上去,那我得說一聲兒:不是在表面上看到的資料要提交,還有些輸入框是被隱藏了,
你可以通過之前講過的方法,查看界面上的 ‘input’ 元素,不過還是建議用xpath一次性抓下來,肉眼怕是要看漏一個就尷尬,
這樣就完了嗎?沒完呢!
還是要cookie,
那這個cookie怎么給呢?
html = requests.get(LOGIN_URL)
second_response = requests.post(LOGIN_URL, data, cookies=html.cookies)
這個樣子,
這么麻煩,還不如用我的辦法,先登錄,登錄之后再找你登錄之后界面的cookie,然后把資料爬下來,
在做驗證碼登錄的時候,還會發現這個方法的奇效
還是短,那就再加selenium吧,不然到時候單獨開一篇selenium又是這個鏈接那個鏈接的,這樣不好,
selenium自動化

關于selenium的簡單介紹依舊在這篇:我要偷偷的學Python,然后驚呆所有人(第十一天)里面提及,
后面呢,我用selenium做了個小專案,以下是當時的紀錄:
我要偷偷的學Python,然后驚呆所有人(第十二天)
連夜優化的一段代碼,請求指教
盡管通過常見瀏覽器安裝和使用 Selenium 相當方便、容易,但是在服務器上運行這些腳本時則會出現問題,對于服務器而言,更常使用的是無界面瀏覽器,它們往往也比功能完整的 Web 瀏覽器更快且更具可配置性,
使用類似 Selenium 這樣基于瀏覽器的決議器的另一個原因是,它表現得更加不像爬蟲,一些網站使用類似蜜罐的防爬技術,在該網站的頁面上可能會包含隱藏的有毒鏈接,當你通過腳本點擊它時,將會使你的爬蟲被封禁,對于這類問題,由于 Selenium 基于瀏覽器的架構,因此可以成為更加強大的爬蟲,此外,你的頭部將包含你使用的確切瀏覽器,而且你還可以使用正常瀏覽器的功能,比如 cookie、會話以及加載圖片和互動元素,這些功能有時需要加載特定的表單或頁面,
這篇就到這兒啦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/251818.html
標籤:其他
上一篇:Vue入門——Vue計算屬性
