国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python爬蟲5:requests庫-案例3

這篇具有很好參考價(jià)值的文章主要介紹了python爬蟲5:requests庫-案例3。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

python爬蟲5:requests庫-案例3

前言

? python實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲非常簡單,只需要掌握一定的基礎(chǔ)知識(shí)和一定的庫使用技巧即可。本系列目標(biāo)旨在梳理相關(guān)知識(shí)點(diǎn),方便以后復(fù)習(xí)。

申明

? 本系列所涉及的代碼僅用于個(gè)人研究與討論,并不會(huì)對(duì)網(wǎng)站產(chǎn)生不好影響。

目錄結(jié)構(gòu)

1. 目標(biāo)

? 本次案例的主要目標(biāo)是幫助大家熟悉requests庫中的會(huì)話維持技巧、代理構(gòu)建等技巧。

? 再次說明,案例本身并不重要,重要的是如何去使用和分析,另外為了避免侵權(quán)之類的問題,我不會(huì)放涉及到網(wǎng)站的圖片,希望能理解。

2. 詳細(xì)流程

2.1 代理池的構(gòu)建

? 代理池的作用之前已經(jīng)講過了,但是如何構(gòu)建代理池呢?一般來說都是將那些可以使用的代理IP放入數(shù)據(jù)庫中,后面寫爬蟲程序的時(shí)候再調(diào)用,因?yàn)榇沓厥强梢砸恢笔褂玫墓ぞ摺?/p>

? 我之前寫過一個(gè)腳本,就是利用一個(gè)爬蟲專門去爬免費(fèi)代理網(wǎng)站的代理IP,然后再寫個(gè)爬蟲去爬取目標(biāo)網(wǎng)站。不過這里,我們就簡單來,把一些可用的代理IP放入一個(gè)字典中即可

2.2 目標(biāo)確定

? 這次我換了一個(gè)小網(wǎng)站,具體地址我就不放了。

? 首先,利用上一篇的知識(shí),虛假登錄獲取data參數(shù)值,結(jié)果如下:

python爬蟲5:requests庫-案例3,python爬蟲系列,python,爬蟲,開發(fā)語言

? 可以發(fā)現(xiàn)的是,參數(shù)構(gòu)建如下:

data = {
	'action' : 'user_login',
	'username' : 賬號(hào),
	'password' : 密碼,
	'rememberme' : 1
}
2.3 真實(shí)url確定

? 在上一講由于沒能實(shí)際運(yùn)行代碼,所以忘記講述這一點(diǎn)了。

? 就是我們登錄頁面的url有時(shí)候并不是我們?cè)诰W(wǎng)頁上看到的url,比如這個(gè)案例中,我在網(wǎng)頁上看到的登錄網(wǎng)址為:

xxxxxx_login.html

? 但是,實(shí)際上,我通過上面的POST頁面,發(fā)現(xiàn)真實(shí)的網(wǎng)址其實(shí)是一個(gè)名為xxxxx.php頁面,所以大家一定要以抓取的POST頁面信息為準(zhǔn),才可以快準(zhǔn)狠地登錄成功。

2.4 代碼

? 有了上面的思路,代碼就很簡單了:

import requests
import time
# 網(wǎng)址
login_url = '真實(shí)登錄網(wǎng)址'
home_url = '個(gè)人用戶頁面網(wǎng)址'
# 參數(shù)
username = input('請(qǐng)輸入賬號(hào):')
password = input('請(qǐng)輸入密碼:')
data = {
    'action': 'user_login',
    'username': username,
    'password': password,
    'rememberme': '1'
}
# header參數(shù)
headers = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
}
# 代理池
proxies = {
    'http' :'http://ip:端口',
    xxxxx
}
# 請(qǐng)求
session = requests.session()
# 登錄
session.post(login_url,headers=headers,data=data,proxies=proxies)
time.sleep(6)
# 訪問個(gè)人主頁
response = session.get(home_url,headers=headers)
# 查看結(jié)果
print(response.status_code)
# 把個(gè)人用戶界面網(wǎng)頁拷貝下來證明登錄成功
with open('home.html','w',encoding='utf-8') as f:
    f.write(response.content.decode('utf-8'))

? 這里又補(bǔ)充一個(gè)知識(shí)點(diǎn),就是你可以把網(wǎng)頁源碼保存到本地,以html后綴格式存儲(chǔ),然后可以用瀏覽器打開,這樣可以直觀看到爬取的結(jié)果

? 此時(shí),我這里的結(jié)果如下:

python爬蟲5:requests庫-案例3,python爬蟲系列,python,爬蟲,開發(fā)語言

3. 總結(jié)

? 到這篇文章為止,requests庫就講解完畢了,這里我簡單總結(jié)一下寫請(qǐng)求代碼時(shí)最需要注意的點(diǎn):

  • headers參數(shù)不能忘記,現(xiàn)在網(wǎng)站最基本的都會(huì)排查headers參數(shù)
  • 寫登錄爬蟲時(shí),一定要去通過瀏覽器提供的后臺(tái)工具,結(jié)合我上篇和這篇的知識(shí)點(diǎn),去抓取真實(shí)提交的POST頁面,找到參數(shù)和真實(shí)url

? 下一篇,開始講解解析庫的內(nèi)容。文章來源地址http://www.zghlxwxcb.cn/news/detail-646871.html

到了這里,關(guān)于python爬蟲5:requests庫-案例3的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【100天精通python】Day42:python網(wǎng)絡(luò)爬蟲開發(fā)_HTTP請(qǐng)求庫requests 常用語法與實(shí)戰(zhàn)

    目錄 1 HTTP協(xié)議 2??HTTP與HTTPS 3 HTTP請(qǐng)求過程 ?3.1 HTTP請(qǐng)求過程 3.2 GET請(qǐng)求與POST請(qǐng)求

    2024年02月12日
    瀏覽(26)
  • 【Python程序開發(fā)系列】聊一聊github的pull request幾種合并方式

    【Python程序開發(fā)系列】聊一聊github的pull request幾種合并方式

    ? ? ? 在正常的工作流程中,PR 用于將一個(gè)分支的更改合并到另一個(gè)分支,而這些更改通常以提交的形式存在。每個(gè)提交都有一個(gè)唯一的提交 ID,用于標(biāo)識(shí)和跟蹤更改的歷史。因此一般情況下PR包含源分支的多個(gè)commit提交記錄(pr_commit_ids),也有可能不包含任何commit。 ? ?

    2024年02月20日
    瀏覽(24)
  • 可獄可囚的爬蟲系列課程 11:Requests中的SSL

    可獄可囚的爬蟲系列課程 11:Requests中的SSL

    我們?cè)诳瑟z可囚的爬蟲系列課程 09:通過 API 接口抓取數(shù)據(jù)文章中遺留了一個(gè)問題,就是為什么要添加 verify=True 這個(gè)參數(shù),今天我給大家單獨(dú)解釋一下,這還要從網(wǎng)站的 SSL 證書說起。 SSL 證書是數(shù)字證書的一種,類似于駕駛證、護(hù)照、營業(yè)執(zhí)照等的電子副本。SSL 證書也稱為

    2024年02月01日
    瀏覽(19)
  • python爬蟲—requests

    python爬蟲—requests

    類型 : models.Response r.text : 獲取網(wǎng)站源碼 r.encoding :訪問或定制編碼方式 r.url :獲取請(qǐng)求的 url r.content :響應(yīng)的字節(jié)類型 r.status_code :響應(yīng)的狀態(tài)碼 r.headers :響應(yīng)的頭信息 找登錄接口 ?找參數(shù)的值 python代碼 登錄超級(jí)鷹官網(wǎng):超級(jí)鷹驗(yàn)證碼識(shí)別-專業(yè)的驗(yàn)證碼云端識(shí)別服務(wù)

    2024年02月10日
    瀏覽(19)
  • python-網(wǎng)絡(luò)爬蟲.Request

    python-網(wǎng)絡(luò)爬蟲.Request

    Request python中requests庫使用方法詳解: 一簡介: ????????Requests 是Python語言編寫,基于urllib, ????????采用Apache2 Licensed開源協(xié)議的 HTTP 庫。 ????????與urllib相比,Requests更加方便,處理URL資源特別流暢。 ????????可以節(jié)約我們大量的工作,建議爬蟲使用Requests庫

    2024年02月14日
    瀏覽(27)
  • 【Python爬蟲】requests庫

    【Python爬蟲】requests庫

    1.requests庫的介紹 ? requests 是 Python 語言編寫,基于 urllib3 ,采用 Apache2 Licensed 開源協(xié)議的HTTP庫。它比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP 測試需求。是 Python 實(shí)現(xiàn)的簡單易用的 HTTP 庫。 Requests 中文文檔:http://docs.pythonrequests.org/zh_CN/latest/index.html ? 解決

    2024年02月16日
    瀏覽(22)
  • 【python爬蟲】設(shè)計(jì)自己的爬蟲 1. request封裝

    通過requests.session().request 封裝request方法 考慮到請(qǐng)求HTTP/2.0 同時(shí)封裝httpx 來處理HTTP/2.0的請(qǐng)求 通過is_http2來區(qū)分 測試代碼如下

    2024年02月08日
    瀏覽(24)
  • Python爬蟲之requests模塊

    requests文檔http://docs.python-requests.org/zh_CN/latest/index.html 1、requests模塊的作用: 發(fā)送http請(qǐng)求,獲取響應(yīng)數(shù)據(jù) 2、requests模塊是一個(gè)第三方模塊,需要在你的python(虛擬)環(huán)境中額外安裝 pip/pip3 install requests 3、requests模塊發(fā)送get請(qǐng)求 需求:通過requests向百度首頁發(fā)送請(qǐng)求,獲取該頁面

    2024年02月09日
    瀏覽(18)
  • python爬蟲——request模塊講解,Python詳解

    python爬蟲——request模塊講解,Python詳解

    對(duì)于GET方式的請(qǐng)求,瀏覽器會(huì)把http header和data一并發(fā)送出去,服務(wù)器響應(yīng)200(返回?cái)?shù)據(jù)); 而對(duì)于POST, 瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue,瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok(返回?cái)?shù)據(jù))。 (二)http常見請(qǐng)求參數(shù) url:請(qǐng)求url地址 headers:請(qǐng)求頭 **data:發(fā)送編碼為表

    2024年04月26日
    瀏覽(18)
  • python-requests庫(爬蟲)

    網(wǎng)頁數(shù)據(jù)獲取有python自帶的urllib,也有第三方庫requests requests.request(url) 構(gòu)造一個(gè)請(qǐng)求 requests.get(url,params=None) 發(fā)送get請(qǐng)求,結(jié)果為response對(duì)象 requests.post(url,data=None,json=None) 發(fā)送post請(qǐng)求 requests.put() 發(fā)送put請(qǐng)求 requests.head() 獲取html的頭信息 requests.delete() 提交刪除請(qǐng)求 requests.pat

    2024年02月08日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包