??????
???Hello,大家好我叫是Dream呀,一個(gè)有趣的Python博主,小白一枚,多多關(guān)照???
???CSDN Python領(lǐng)域新星創(chuàng)作者,大二在讀,歡迎大家找我合作學(xué)習(xí)
?入門須知:這片樂園從不缺乏天才,努力才是你的最終入場(chǎng)券!???
?最后,愿我們都能在看不到的地方閃閃發(fā)光,一起加油進(jìn)步???
???“一萬次悲傷,依然會(huì)有Dream,我一直在最溫暖的地方等你”,唱的就是我!哈哈哈~???
??????
前言:
requests庫(kù)其實(shí)和urllib庫(kù)是差不多的,但是urllib庫(kù)的話有點(diǎn)過時(shí)了,所以說一般都是用的request庫(kù),下面一起來學(xué)習(xí)一下吧
官方文檔
http://cn.python‐requests.org/zh_CN/latest/
快速上手
http://cn.python‐requests.org/zh_CN/latest/user/quickstart.html
pip install requests
安裝成功后會(huì)有successfully的提示,已安裝會(huì)有Requirement already satisfied的提示:
1.類型
```htmlimport requestsurl = "https://www.baidu.com/"response = requests.get(url = url)# 一種類型 六個(gè)屬性# Response類型print(type(response))
<class "requests.models.Response">
2.以字符串形式來返回網(wǎng)頁的源碼
# 以字符串形式來返回網(wǎng)頁的源碼print(response.text)
3.返回一個(gè)url地址
# 返回一個(gè)url地址print(response.url)
https://www.baidu.com/
4.返回的是二進(jìn)制數(shù)據(jù)
# 返回的是二進(jìn)制數(shù)據(jù)print(response.content)
5.返回響應(yīng)的狀態(tài)碼
# 返回響應(yīng)的狀態(tài)碼print(response.status_code)
200
6.返回的是響應(yīng)頭
# 返回的是響應(yīng)頭print(response.headers)
# (1)一個(gè)類型以及六個(gè)方法# (2)get請(qǐng)求# (3)post請(qǐng)求 百度翻譯# (4)ajsx的get請(qǐng)求# (5)ajax的post請(qǐng)求# (6)cookie登錄 微博# (7)代理
# (1)一個(gè)類型 六個(gè)屬性# (2)get請(qǐng)求# (3)post請(qǐng)求# (4)代理# (5)cookie 驗(yàn)證碼
import requestsurl = "https://www.baidu.com/s"headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"}data = { "wd": "北京"}# url 請(qǐng)求資源路徑# params 參數(shù)# kwargs 字典response = requests.get(url=url, params=data, headers=headers)content = response.textprint(content)
1.參數(shù)使用params傳遞
2.參數(shù)無需urlencode編碼
3.無需請(qǐng)求對(duì)象定制
4.請(qǐng)求資源路徑中的?可以加也可以不加
# -*-coding:utf-8 -*-# @Author:到點(diǎn)了,心疼徐哥哥# 奧利給干!!!import requestsimport jsonurl = "https://fanyi.baidu.com/sug"headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"}data = { "kw":"eye"}# url請(qǐng)求地址# data請(qǐng)求參數(shù)# kwargs 字典response = requests.post(url=url, data=data, headers=headers)content = response.textprint(content)obj = json.loads(content,encoding="utf-8")print(obj)
1.post請(qǐng)求不需要編解碼
2.post請(qǐng)求的參數(shù)是data
3.不需要請(qǐng)求對(duì)象的定制
1.打開古詩(shī)文網(wǎng):
古詩(shī)文網(wǎng)
2.登錄界面:
# 登錄界面url = "https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx"headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"}
3.獲取頁面的源碼
# 獲取頁面的源碼:response = requests.get(url=url,headers=headers)content = response.text
4.解析頁面源碼,然后獲取’__VIEWSTATE’和’__VIEWSTATEGENERATOR’
# 解析頁面源碼,然后獲取"__VIEWSTATE"和"__VIEWSTATEGENERATOR"from bs4 import BeautifulSoupsoup = BeautifulSoup(content,"lxml")# 獲取"__VIEWSTATE"viewstate = soup.select("#__VIEWSTATE")[0].attrs.get("value")# 獲取"__VIEWSTATEGENERATOR"viestategener = soup.select("#__VIEWSTATEGENERATOR")[0].attrs.get("value")
5.獲取驗(yàn)證碼圖片
# 獲取驗(yàn)證碼圖片code = soup.select("#imgCode")[0].attrs.get("src")code_url =" https://so.gushiwen.cn"+code
6.獲取圖片驗(yàn)證碼后,保存到本地,然后觀察驗(yàn)證碼進(jìn)行輸入。
# 獲取圖片驗(yàn)證碼后,保存到本地,然后觀察驗(yàn)證碼進(jìn)行輸入。# requests里面有一個(gè)session()方法,通過session的返回值 就能使用請(qǐng)求變成一個(gè)對(duì)象session = requests.session()# 驗(yàn)證碼的url的內(nèi)容response_code = session.get(code_url)# 注意此時(shí)要使用二進(jìn)制數(shù)據(jù)content_code = response_code.content# wb的模式就是將二進(jìn)制數(shù)據(jù)寫入文件with open("code.jpg","wb")as fp: fp.write(content_code)code_name = input("請(qǐng)輸入你的驗(yàn)證碼:")、
7.點(diǎn)擊登錄
url_post = "https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx"data_post = { "__VIEWSTATE":viewstate , "__VIEWSTATEGENERATOR":viestategener , "from": "http://so.gushiwen.cn/user/collect.aspx", "email": "18300396393", "pwd": "20020102XYPxyp", "code": code_name, "denglu":"登錄",}response_post = session.post(url=url,headers=headers,data=data_post)content_post = response_post.textwith open("gushiwen.html","w",encoding="utf-8") as fp: fp.write(content_post)
8.獲取動(dòng)態(tài)驗(yàn)證碼
9.打開得到的網(wǎng)站:
進(jìn)入:
成功撒花!
1.隱藏域
2.驗(yàn)證碼
超級(jí)鷹
網(wǎng)站:可用賬號(hào)及密碼: 賬號(hào):action 密碼:action
進(jìn)入之后進(jìn)行Python語言Demo下載。
將下載好的Demo放入我們我們的工程文件中去,觀察其代碼:
1.將此處換成我們的用戶名和代碼
2.按照提示來替換我們的id:
3.生成我們自己的一個(gè)軟件id:
4.最后在print后面加上(),就可以啦!
5.由于返回字典,就可以通過鍵值對(duì)對(duì)應(yīng)關(guān)系,找到我們的驗(yàn)證碼的值了:
4.源碼分享:
#!/usr/bin/env python# coding:utf-8import requestsfrom hashlib import md5class Chaojiying_Client(object): def __init__(self, username, password, soft_id): self.username = username password = password.encode("utf8") self.password = md5(password).hexdigest() self.soft_id = soft_id self.base_params = { "user": self.username, "pass2": self.password, "softid": self.soft_id, } self.headers = { "Connection": "Keep-Alive", "User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)", } def PostPic(self, im, codetype): """ im: 圖片字節(jié) codetype: 題目類型 參考 http://www.chaojiying.com/price.html """ params = { "codetype": codetype, } params.update(self.base_params) files = {"userfile": ("ccc.jpg", im)} r = requests.post("http://upload.chaojiying.net/Upload/Processing.php", data=params, files=files, headers=self.headers) return r.json() def ReportError(self, im_id): """ im_id:報(bào)錯(cuò)題目的圖片ID """ params = { "id": im_id, } params.update(self.base_params) r = requests.post("http://upload.chaojiying.net/Upload/ReportError.php", data=params, headers=self.headers) return r.json()if __name__ == "__main__": chaojiying = Chaojiying_Client("action", "action", "925358") #用戶中心>>軟件ID 生成一個(gè)替換 96001 im = open("a.jpg", "rb").read() #本地圖片文件路徑 來替換 a.jpg 有時(shí)WIN系統(tǒng)須要// print(chaojiying.PostPic(im, 1902).get("pic_str")) #1902 驗(yàn)證碼類型 官方網(wǎng)站>>價(jià)格體系 3.4+版 print 后要加()
Python爬蟲?? Urllib用法合集——?一鍵輕松入門爬蟲?
爬蟲中的戀愛學(xué)心理你get了嗎?一杯星巴克溫暖你的整個(gè)冬天——爬蟲bs4解析從入門到入坑
??1024不孤單!??Xpath爬蟲——你最忠實(shí)的伴侶:老規(guī)矩給我一分鐘,萬字教你入手Xpath!?
Python爬蟲實(shí)戰(zhàn)?? 從零開始分析頁面,抓取數(shù)據(jù)——爬取豆瓣電影任意頁數(shù) 看不懂你來找我!??
天青色等煙雨 爬蟲在等你??post請(qǐng)求?cookie登錄?handler處理器?
??? 好啦,這就是今天要分享給大家的全部?jī)?nèi)容了
??????如果你喜歡的話,就不要吝惜你的一鍵三連了~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/124786.html
摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:為了寫好爬蟲,我們需要準(zhǔn)備一個(gè)火狐瀏覽器,還需要準(zhǔn)備抓包工具,抓包工具,我使用的是自帶的,加上,這兩款軟件的安裝和使用,建議你還是學(xué)習(xí)一下,后面我們應(yīng)該會(huì)用到。 妹子圖網(wǎng)站----前言 從今天開始就要擼起袖子,直接寫Python爬蟲了,學(xué)習(xí)語言最好的辦法就是有目的的進(jìn)行,所以,接下來我將用10+篇的博客,寫爬圖片這一件事情。希望可以做好。 為了寫好爬蟲,我們需要準(zhǔn)備一個(gè)火狐瀏覽器,還需...
摘要:為了寫好爬蟲,我們需要準(zhǔn)備一個(gè)火狐瀏覽器,還需要準(zhǔn)備抓包工具,抓包工具,我使用的是自帶的,加上,這兩款軟件的安裝和使用,建議你還是學(xué)習(xí)一下,后面我們應(yīng)該會(huì)用到。 妹子圖網(wǎng)站----前言 從今天開始就要擼起袖子,直接寫Python爬蟲了,學(xué)習(xí)語言最好的辦法就是有目的的進(jìn)行,所以,接下來我將用10+篇的博客,寫爬圖片這一件事情。希望可以做好。 為了寫好爬蟲,我們需要準(zhǔn)備一個(gè)火狐瀏覽器,還需...
摘要:以下這些項(xiàng)目,你拿來學(xué)習(xí)學(xué)習(xí)練練手。當(dāng)你每個(gè)步驟都能做到很優(yōu)秀的時(shí)候,你應(yīng)該考慮如何組合這四個(gè)步驟,使你的爬蟲達(dá)到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學(xué)習(xí)不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設(shè)計(jì)方案,比如說。 (一)如何學(xué)習(xí)Python 學(xué)習(xí)Python大致可以分為以下幾個(gè)階段: 1.剛上手的時(shí)候肯定是先過一遍Python最基本的知識(shí),比如說:變量、數(shù)據(jù)結(jié)構(gòu)、語法...
閱讀 1278·2021-11-24 09:39
閱讀 1536·2021-09-07 09:59
閱讀 3490·2019-08-30 15:54
閱讀 2486·2019-08-30 11:00
閱讀 2678·2019-08-29 15:06
閱讀 2169·2019-08-26 13:52
閱讀 438·2019-08-26 13:24
閱讀 2507·2019-08-26 12:20