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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬虫自学之第(零)篇——爬虫思路和request模块使用

發布時間:2023/12/10 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬虫自学之第(零)篇——爬虫思路和request模块使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題外話:

《Pi Network 免費挖礦國外熱門項目 一個π幣大約值3元到10元》相信過去BTC的人,信不信未來的PI,了解一下,唯一一個高度與之持平的項目

爬蟲思路

無思路不成器,如果你怎么想都想不出爬蟲的原理,不妨來看下我們平時是如何上網的,大概就是這樣:
?? 輸入或者點開目標網址→[可選:登錄/回復]→瀏覽全頁篩選出價值內容→如果很喜歡,還會拷貝下載回來

所以爬蟲歸結起來也就這幾步:

  • 構造目標網址(重點
  • 發起請求(request),相當于點開網頁。
  • 獲取網頁內容()。
  • 定制篩選器,對內容進行篩選(重點)。
  • 把爬取結果保存到容器里。
  • 本節學習的requests模塊將會實現二,三步,其他步驟和注意事項將會在后續文章中展示出來。

    ?

    谷歌或者火狐的F12審查元素

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

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

    • 選擇Element是查看網頁源碼,是樹結構的html文檔,里面有要爬取的內容。
    • 選擇Network是查看本地和服務器端交互的包,可以從中獲取目標網址和headers。

    ?

    requests模塊

    打開cmd,直接pip安裝:pip install requests

    簡單使用

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

    • get,就是本地向服務器索取的意思,服務器檢查請求頭(request headers)后,如果覺得沒問題,就會返回信息給本地。
    r = requests.get(url,**args)#返回一個Response對象,我們可以從這個對象中獲取所有我們想要的信息
    • post,就是本地要向服務器提交一些數據的意思,服務器還是會檢查請求頭,如果提交的數據和請求頭都沒問題,就會返回信息給本地。
    r = requests.post(url,**args)#也是返回Response對象

    參數詳解

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

    • url:就是目標網址,接收完整(帶http)的地址字符串。
    • headers:請求頭,存儲本地信息如瀏覽器版本,是一個字典。
    • data:要提交的數據,字典。
    • cookies:cookies,字典。
    • timeout:超時設置,如果服務器在指定秒數內沒有應答,拋出異常,用于避免無響應連接,整形或浮點數。
    • params:為網址添加條件數據,字典。
    payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("http://httpbin.org/get", params=payload) #相當于目標網址變成了http://httpbin.org/get?key2=value2&key1=value1
    • proxies:ip代理時使用,字典。

    Response對象使用

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

    r.encoding = 'ISO-8859-1' #指定r.text返回的數據類型,寫在r.text之前。 r.text #默認以unicode形式返回網頁內容,也就是網頁源碼的字符串。r.content #以二進制形式返回網頁內容,下載圖片時專用。 r.json() #把網頁中的json數據轉成字典并將其返回。#還有一些很少用到的方法。 r.headers #返回服務器端的headers,字典。 r.status_code #返回連接狀態,200正常。

    小實例

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

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

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

    總結

    以上是生活随笔為你收集整理的Python爬虫自学之第(零)篇——爬虫思路和request模块使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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