摘要:網頁的下載本文章屬于爬蟲入門到精通系統教程第四講在爬蟲入門到精通第二講中,我們了解了協議,那么我們現在使用這些協議來快速爬蟲吧本文的目標當你看完本文后,你應該能爬取幾乎任何的網頁使用抓包抓包就是將網絡傳輸發送與接收的數據包進行截獲重發編輯轉
網頁的下載
本文章屬于爬蟲入門到精通系統教程第四講
在爬蟲入門到精通第二講中,我們了解了HTTP協議,那么我們現在使用這些協議來快速爬蟲吧
本文的目標當你看完本文后,你應該能爬取(幾乎)任何的網頁
使用chrome抓包第一個案列:抓取輪子哥的動態抓包(packet capture)就是將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作,也用來檢查網絡安全。抓包也經常被用來進行數據截取等。
打開輪子哥動態這個網頁
打開抓包工具
點擊F12打開開發者工具
點擊Network(或者網絡)
按F5刷新下頁面(主要是讓請求重發一次,這樣就能抓到包了)
應該會看到如下界面
找到我們需要的請求
可以看到如下截圖,里面有這么多的請求,那么到底哪一個才是我們需要的呢 ?
這邊提供一個小技巧
當你要抓的包是需要按F5刷新才出來的,一般我們需要的請求都在DOC里面(整個頁面有刷新)
當你要抓的包是點擊按鈕"加載更多"(或者拖到頁面最下面會自動加載的,整個頁面并沒有刷新)一般我們需要的請求都在XHR里面
簡單來講就是如果整個頁面沒有刷新的話,那就是在XHR里面,否則在DOC里面
因為本次抓包整個頁面有刷新,所以,我們需要找的請求在DOC下面,可以看到只有一個請求
驗證請求是對的
有以下兩種方法(基本上用1,因為比較快)
在我們要抓包的頁面隨便copy出幾個字,在Respoinse中使用ctrl+f 查找,如果有找到,說明我們找到的是對的 (我查找的是"和微軟粉絲談")
把response中所有的內容復制到一個txt中,并改名為"#.html"(這里的#可以隨便取)然后打開這個html,看看是否和我們要抓的一樣
如果發現要找的不對,那你可以打開下一個請求檢查下
模擬發送
點擊Headers
可以看到請求的url是: https://www.zhihu.com/people/...
方法是: GET
requests headers 是(下圖中框出來的地方)
所以我們的代碼應該是:
import requests # 這里的headers就是我們上圖框中的headers request_headers = { "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Encoding":"gzip, deflate, sdch, br", "Accept-Language":"zh-CN,zh;q=0.8", "Cache-Control":"max-age=0", "Connection":"keep-alive", "Cookie":"", "Host":"www.zhihu.com", "Referer":"https://www.zhihu.com/", "Upgrade-Insecure-Requests":"1", "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" } #上圖中的url url = "https://www.zhihu.com/people/excited-vczh/activities" # 上圖中的請求方法(get) z = requests.get(url,headers=request_headers) print z.content
這段代碼簡單來說就是把 我們抓包看到的用程序來實現
一個小總結
我們爬取一個網頁的步驟可以分為如下:
打開要爬取的網頁
打開開發者工具,并讓請求重發一次(簡單講就是抓包)
找到正確的請求
用程序模擬發送
第二個案列:點贊1.打開要爬取的網頁
我們打開 "知乎 - 與世界分享你的知識、經驗和見解"
我們要點贊的回答是這個
2.打開開發者工具,并讓請求重發一次
打開后"點擊贊一下",可以看到有好多請求
3.找到正確的請求
我們一個一個的點開請求看,發現就一個有返回值,而且這個返回值沒有意義,那么怎么確定這個就是我們要找的呢?
我們可以點擊Headers,看一下發送的參數
vote_up 很明顯,就是點贊的意思。所以這個應該就是我們要找的。
這邊說一下,右邊"Headers,Preview,Response,Cookies,Timing"是什么意思
我們經常要看的有,headers 和 preview
headers 里面我們都有介紹過(請求頭,返回頭)
preview和response里面的內容是相同的(preview里面的內容格式化了,輸出的好看一些),里面的內容是html返回值
cookies 里面是cookie的值,只不過分成了key value的形式
Timing基本用不上,所以也不介紹了(想了解的話可以自己百度...)
4.用程序模擬發送
我們把headers全部copy,
url也和上面一樣
參數也是對的
請求方法是post
但是發現最終返回http code 400,這是為什么呢?
讓我們留到后面講解~
最后再次總結一下看完本篇文章后,你應該要
能學會抓包
最后大家可以抓一下知乎登錄的包哦~
小提示:當你要抓的網頁是會自動跳轉的話,那么你需要選中“proserve log”
意思是不要在頁面重新加載后清除log(抓知乎登錄的包會用到)
最后的最后,收藏的大哥們,能幫忙點個贊么~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38594.html
摘要:本文章屬于爬蟲入門到精通系統教程第五講在爬蟲入門到精通第四講中,我們了解了如何下載網頁,這一節就是如何從下載的網頁中獲取我們想要的內容萬能匹配文章的標題文字我們要獲取的如上所示,假如我們要獲取文章的標題這幾個文字,那么我們應該怎么做呢我 本文章屬于爬蟲入門到精通系統教程第五講 在爬蟲入門到精通第四講中,我們了解了如何下載網頁,這一節就是如何從下載的網頁中獲取我們想要的內容 萬能匹配 h...
摘要:起初的提出的初衷是將其作為一個通用的介于與間的語法模型。的基本使用要使用我們需要下載,在爬蟲入門到精通環境的搭建這一章也說明怎么裝,如果還沒有安裝的話,那就去下載安裝吧直接看代碼實戰吧。 本文章屬于爬蟲入門到精通系統教程第六講 在爬蟲入門到精通第五講中,我們了解了如何用正則表達式去抓取我們想要的內容.這一章我們來學習如何更加簡單的來獲取我們想要的內容. xpath的解釋 XPath即為...
摘要:開始爬蟲之旅本文章屬于爬蟲入門到精通系統教程第一講引言我經常會看到有人在知乎上提問如何入門爬蟲爬蟲進階利用爬蟲技術能做到哪些很酷很有趣很有用的事情等這一些問題,我寫這一系列的文章的目的就是把我的經驗告訴大家。 開始爬蟲之旅 本文章屬于爬蟲入門到精通系統教程第一講 引言 我經常會看到有人在知乎上提問如何入門 Python 爬蟲?、Python 爬蟲進階?、利用爬蟲技術能做到哪些很酷很有趣...
摘要:環境的安裝本文章屬于爬蟲入門到精通系統教程第二講的安裝我用的是,也用過但是電腦配置不行,比較卡安裝教程在這寫的蠻清楚的然后安裝一個的插件就行見如下截圖點擊數字的地方在數字的地方輸入點擊右邊的安裝按鈕包的安裝配置源,不配置的話下載速度很慢在當 環境的安裝 本文章屬于爬蟲入門到精通系統教程第二講 IDE的安裝 IDE我用的是VS code,也用過pycharm(但是電腦配置不行,比較卡) ...
摘要:協議的講解本文章屬于爬蟲入門到精通系統教程第三講什么是協議引用自維基百科超文本傳輸協議英文,縮寫是互聯網上應用最為廣泛的一種網絡協議。通過或者協議請求的資源由統一資源標識符,來標識。假定其下層協議提供可靠的傳輸。 HTTP協議的講解 本文章屬于爬蟲入門到精通系統教程第三講 什么是HTTP協議? 引用自維基百科 超文本傳輸協議(英文:HyperText Transfer Protoco...
閱讀 1234·2021-11-25 09:43
閱讀 1344·2021-09-26 09:55
閱讀 2404·2021-09-10 11:20
閱讀 3372·2019-08-30 15:55
閱讀 1449·2019-08-29 13:58
閱讀 1175·2019-08-29 12:36
閱讀 2350·2019-08-29 11:18
閱讀 3415·2019-08-26 11:47