国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python 從零開始爬蟲(零)——爬蟲思路&requests模塊使用

YanceyOfficial / 1247人閱讀

摘要:定制篩選器,對內(nèi)容進(jìn)行篩選重點。審查元素這是瀏覽器自帶的工具,提供抓包和檢查網(wǎng)頁源碼的功能,供使用者分析網(wǎng)頁。超時設(shè)置,如果服務(wù)器在指定秒數(shù)內(nèi)沒有應(yīng)答,拋出異常,用于避免無響應(yīng)連接,整形或浮點數(shù)。返回連接狀態(tài),正常。

前言

python 3.6 !!

本爬蟲系列是面對有Python語法基礎(chǔ)的讀者寫的,如果你沒學(xué)過python,emmmm.....也沒關(guān)系,你或許能從每篇文章中學(xué)到一些爬蟲的思路;如果你的python基礎(chǔ)語法已經(jīng)應(yīng)用自如,那是極好的。

本系列的教程和實例均總結(jié)于筆者的自學(xué)經(jīng)歷,如有不足歡迎指正和討論,問題我會盡量回復(fù),也希望大家能有所收獲。

爬蟲真好玩.jpg


廢話不多說,趕緊開始這條不歸路吧

爬蟲思路

無思路不成器,如果你怎么想都想不出爬蟲的原理,不妨來看下我們平時是如何上網(wǎng)的,大概就是這樣:
?? ①點開目標(biāo)網(wǎng)址→→[可選:登錄/回復(fù)]→→②瀏覽全頁篩選出價值內(nèi)容→→③如果很喜歡,還會拷貝下載回來

所以爬蟲歸結(jié)起來也就這幾步:

構(gòu)造目標(biāo)網(wǎng)址(重點

發(fā)起請求(request),相當(dāng)于點開網(wǎng)頁。

獲取網(wǎng)頁內(nèi)容()。

定制篩選器,對內(nèi)容進(jìn)行篩選(重點)。

把爬取結(jié)果保存到容器里。

本節(jié)學(xué)習(xí)的requests模塊將會實現(xiàn)二,三步,其他步驟和注意事項將會在后續(xù)文章中展示出來。

F12審查元素

這是瀏覽器自帶的工具,提供抓包和檢查網(wǎng)頁源碼的功能,供使用者分析網(wǎng)頁。也是學(xué)爬蟲必須要學(xué)會的工具,一個優(yōu)秀的蟲爸/蟲媽應(yīng)該花更多的時間在網(wǎng)頁分析和debug上。

使用非常簡單,打開任一瀏覽器(筆者的是google chrome),按F12或鼠標(biāo)右鍵檢查。

選擇Element是查看網(wǎng)頁源碼,是樹結(jié)構(gòu)的html文檔,里面有要爬取的內(nèi)容。

選擇Network是查看本地和服務(wù)器端交互的包,可以從中獲取目標(biāo)網(wǎng)址和headers。

requests模塊

為什么選擇requests,因為它能完全勝任python自帶的urllib模塊,簡化了不必要的功能的同時讓使用更加簡單。

安裝

非常簡單,打開cmd,直接pip安裝

pip install requests

或pycharm中搜索requests安裝

簡單使用

首先呈上官方文檔,有中文版,歡迎來啃。
下面主要介紹兩種方法:get和post

get,就是本地向服務(wù)器索取的意思,服務(wù)器檢查請求頭(request headers)后,如果覺得沒問題,就會返回信息給本地。

r = requests.get(url,**args)#返回一個Response對象,我們可以從這個對象中獲取所有我們想要的信息

post,就是本地要向服務(wù)器提交一些數(shù)據(jù)的意思,服務(wù)器還是會檢查請求頭,如果提交的數(shù)據(jù)和請求頭都沒問題,就會返回信息給本地。

r = requests.post(url,**args)#也是返回Response對象
參數(shù)詳解

get和post方法中有許多參數(shù)可以使用,部分參數(shù)后面會詳解。

url:就是目標(biāo)網(wǎng)址,接收完整(帶http)的地址字符串。

headers:請求頭,存儲本地信息如瀏覽器版本,是一個字典。

data:要提交的數(shù)據(jù),字典。

cookies:cookies,字典。

timeout:超時設(shè)置,如果服務(wù)器在指定秒數(shù)內(nèi)沒有應(yīng)答,拋出異常,用于避免無響應(yīng)連接,整形或浮點數(shù)。

params:為網(wǎng)址添加條件數(shù)據(jù),字典。

payload = {"key1": "value1", "key2": "value2"}
r = requests.get("http://httpbin.org/get", params=payload)
#相當(dāng)于目標(biāo)網(wǎng)址變成了http://httpbin.org/get?key2=value2&key1=value1

proxies:ip代理時使用,字典。

Response對象使用

從這個對象中獲取所有我們想要的信息非常簡單,畢竟爬蟲要的數(shù)據(jù)主要就三種,html源碼,圖片二進(jìn)制數(shù)據(jù),json數(shù)據(jù),Response對象一次性滿足你三個愿望。

r.encoding = "ISO-8859-1"    #指定r.text返回的數(shù)據(jù)類型,寫在r.text之前。
r.text    #默認(rèn)以unicode形式返回網(wǎng)頁內(nèi)容,也就是網(wǎng)頁源碼的字符串。

r.content    #以二進(jìn)制形式返回網(wǎng)頁內(nèi)容,下載圖片時專用。
r.json()    #把網(wǎng)頁中的json數(shù)據(jù)轉(zhuǎn)成字典并將其返回。

#還有一些很少用到的方法。
r.headers    #返回服務(wù)器端的headers,字典。
r.status_code    #返回連接狀態(tài),200正常。
小實例

requests 學(xué)完后就可以到處試試了,如果紅了(拋出異常),那大概是服務(wù)器拒絕你了,畢竟偽裝什么的還沒提到,服務(wù)器知道你是蟲子就把你踢掉了。

import requests
r = requets.get("http://cn.python-requests.org/zh_CN/latest/")
with open("test.txt","w",encoding = "utf-8") as file:#編碼要對應(yīng)
    file.write(r.text)
    #然后打開看看吧,是不是和F12看到的源碼一樣,只不過是把分支全展開了而已。

小提示:并不是所有網(wǎng)站的F12源碼和爬取源碼是一致的,網(wǎng)站有動態(tài)的,也有靜態(tài)的;有防爬蟲的,也有敞開大門任意爬的。關(guān)于對策之后會講到。

第一次寫文章,挺累的,我需要做(wan)幾(ji)道(pan)數(shù)(you)學(xué)(xi)題放松一下自己才行。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41526.html

相關(guān)文章

  • Python 開始爬蟲(一)——爬蟲偽裝&反“反爬”

    摘要:總的來說有兩種反爬策略,要么驗證身份,把蟲子踩死在門口要么在網(wǎng)站植入各種反爬機制,讓爬蟲知難而退。本節(jié)內(nèi)容就著這兩種反爬策略提出一些對策。內(nèi)嵌反爬很靈活,沒有什么固定的代碼格式,要花時間去分析出來。 ??之前提到過,有些網(wǎng)站是防爬蟲的。其實事實是,凡是有一定規(guī)模的網(wǎng)站,大公司的網(wǎng)站,或是盈利性質(zhì)比較強的網(wǎng)站,都是有高級的防爬措施的。總的來說有兩種反爬策略,要么驗證身份,把蟲子踩死在門口...

    int64 評論0 收藏0
  • Python 開始爬蟲(五)——初遇json&爬取某寶商品信息

    摘要:能看到這里說明快進(jìn)入動態(tài)網(wǎng)頁爬取了,在這之前還有一兩個知識點要了解,就如本文要講的及其數(shù)據(jù)提取是什么是輕量級的文本數(shù)據(jù)交換格式,符合的格式的字符串叫字符串,其格式就像中字符串化后的字典,有時字典中還雜著列表字典,但是里面的數(shù)據(jù)都被雙引號包著 ??能看到這里說明快進(jìn)入動態(tài)網(wǎng)頁爬取了,在這之前還有一兩個知識點要了解,就如本文要講的json及其數(shù)據(jù)提取 JSON 是什么 ??json是輕量級...

    2bdenny 評論0 收藏0
  • Python 開始爬蟲(三)——實戰(zhàn):requests+BeautifulSoup實現(xiàn)靜態(tài)爬取

    摘要:前篇全片都是生硬的理論使用,今天就放個靜態(tài)爬取的實例讓大家體驗一下的使用,了解一些背后的原理。給出網(wǎng)站打開右鍵檢查第一個電影,分析源碼先,發(fā)現(xiàn)每個標(biāo)簽就對應(yīng)著一個電影的信息。 前篇全片都是生硬的理論使用,今天就放個靜態(tài)爬取的實例讓大家體驗一下BeautifulSoup的使用,了解一些背后的原理。 順便在這引入靜態(tài)網(wǎng)頁的概念——靜態(tài)網(wǎng)頁是指一次性加載所有內(nèi)容的網(wǎng)頁,爬蟲一次請求便能得到所...

    Codeing_ls 評論0 收藏0
  • Python爬蟲建站入門手記——開始建立采集站點(二:編寫爬蟲

    摘要:接上回第二部分,編寫爬蟲。進(jìn)入微信嵌套選擇圖片和上傳圖片接口,實現(xiàn)一鍵上傳圖片,遇到問題看吧,我現(xiàn)在已經(jīng)可以通過爬蟲獲取的提問標(biāo)題了。微信故意省略想做小偷站的,看到這里基本上就能搞出來了。下一篇,采集入庫 上回,我裝了環(huán)境 也就是一對亂七八糟的東西 裝了pip,用pip裝了virtualenv,建立了一個virtualenv,在這個virtualenv里面,裝了Django,創(chuàng)建了一個...

    Codeing_ls 評論0 收藏0
  • 開始打造個人專屬命令行工具集——yargs完全指南

    摘要:自阮大神的文章發(fā)布以來,有了一些改動,添加有很多有用的功能,特別是這個功能,對打造命令行工具集合非常有用,所以寫一個新版本的教程還是有必要的。 前言 使用命令行程序?qū)Τ绦騿T來說很常見,就算是前端工程師或者開發(fā)gui的,也需要使用命令行來編譯程序或者打包程序 熟練使用命令行工具能極大的提高開發(fā)效率,linux自帶的命令行工具都非常的有用,但是這些工具都是按照通用需求開發(fā)出來的,如果有一些...

    wanghui 評論0 收藏0

發(fā)表評論

0條評論

YanceyOfficial

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<