乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python使用Fiddler Postman requests爬取各國國旗

       雨潤心田品風(fēng)雨 2019-03-17

      介紹

      本篇文章將會介紹一個Python爬蟲,用來爬取各個國家的國旗,主要的目標(biāo)是為了展示如何在Python的requests模塊中使用POST方法來爬取網(wǎng)頁內(nèi)容。

      為了知道POST方法所需要傳遞的HTTP請求頭部和請求體,我們可以使用Fiddler來進(jìn)行抓包,抓取上網(wǎng)過程中HTTP請求中的POST方法。為了驗證Fiddler抓取到的POST請求,可以使用Postman進(jìn)行測試驗證。在Postman中完成測試后,我們就可以用Python的request.POST()方法來寫我們的爬蟲了。

      流程

      作為上述過程的一個演示,我們使用的網(wǎng)址為: http://country.911cha.com/ , 頁面如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      在表單中輸入德國,跳轉(zhuǎn)后的頁面如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      我們可以發(fā)現(xiàn),在搜索的結(jié)果中,會出現(xiàn)德國這個搜索結(jié)果。點(diǎn)擊該搜索結(jié)果,跳轉(zhuǎn)后的頁面如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      在這個頁面中有我們需要的德國的國旗。但是,怎么知道該網(wǎng)頁的具體網(wǎng)址呢?換句話說,就是怎樣得到http://country.911cha.com/GER... ?別擔(dān)心,在剛才出來的德國這個搜索結(jié)果中,我們查看其源代碼,不難發(fā)現(xiàn),在HTML源代碼中,有我們想要的東西:

      Python使用Fiddler+Postman+requests爬取各國國旗

      在源代碼中我們能看到“GER.html”,這就意味著,只要得到搜索的結(jié)果,我們可以分析HTML源碼來得到這個搜索結(jié)果的連接網(wǎng)址,然后在該連接網(wǎng)址中獲取該國的國旗。所以,在這個爬蟲中,最困難的地方在于,如何獲取搜索結(jié)果?即,得到提交表單后的結(jié)果,也就是POST方法提交后的響應(yīng)結(jié)果。我們利用Fiddler來抓取該P(yáng)OST方法。

      我們打開Fiddler, 同時重復(fù)上面的操作,可以得到該過程的HTTP請求,如下圖:

      Python使用Fiddler+Postman+requests爬取各國國旗

      Fiddler幫助我們找到了剛才提交表單過程中的一個POST請求,具體分析該P(yáng)OST請求,其請求頭部如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      其請求體如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      為了驗證Fiddler抓取的POST請求,我們需要要Postman來進(jìn)行測試。在用Postman進(jìn)行測試前,我們需要問:是否所有請求頭部中的數(shù)據(jù)都需要呢?答案是否定的,實際上,我們只需要User-Agent和Content-Type即可。在Postman中,先輸入請求頭部,如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      再輸入請求體,如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      點(diǎn)擊'SEND'按鈕,得到響應(yīng)后的結(jié)果,如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      OK,這樣我們就完成了Postman的測試。

      爬蟲

      于是,借助這些信息來完成request.post()的提交,同時,借助BeautifulSoup來解析網(wǎng)頁,得到國家的國旗下載地址并完成下載。具體的Python代碼如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      其中countries.txt的部分內(nèi)容如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      運(yùn)行上述Python代碼,我們發(fā)現(xiàn)在E盤的flag文件夾下,已經(jīng)下載了各個國家的國旗,如下:

      Python使用Fiddler+Postman+requests爬取各國國旗

      這樣我們就完成了本次爬蟲的任務(wù)!

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多