??????
???Hello,大家好我叫是Dream呀,一個有趣的Python博主,小白一枚,多多關照???
???CSDN Python領域新星創作者,大二在讀,歡迎大家找我合作學習
?入門須知:這片樂園從不缺乏天才,努力才是你的最終入場券!???
?最后,愿我們都能在看不到的地方閃閃發光,一起加油進步???
???“一萬次悲傷,依然會有Dream,我一直在最溫暖的地方等你”,唱的就是我!哈哈哈~???
??????
前言:
requests庫其實和urllib庫是差不多的,但是urllib庫的話有點過時了,所以說一般都是用的request庫,下面一起來學習一下吧
官方文檔
http://cn.python‐requests.org/zh_CN/latest/
快速上手
http://cn.python‐requests.org/zh_CN/latest/user/quickstart.html
pip install requests
安裝成功后會有successfully的提示,已安裝會有Requirement already satisfied的提示:
1.類型
```htmlimport requestsurl = "https://www.baidu.com/"response = requests.get(url = url)# 一種類型 六個屬性# Response類型print(type(response))
<class "requests.models.Response">
2.以字符串形式來返回網頁的源碼
# 以字符串形式來返回網頁的源碼print(response.text)
3.返回一個url地址
# 返回一個url地址print(response.url)
https://www.baidu.com/
4.返回的是二進制數據
# 返回的是二進制數據print(response.content)
5.返回響應的狀態碼
# 返回響應的狀態碼print(response.status_code)
200
6.返回的是響應頭
# 返回的是響應頭print(response.headers)
# (1)一個類型以及六個方法# (2)get請求# (3)post請求 百度翻譯# (4)ajsx的get請求# (5)ajax的post請求# (6)cookie登錄 微博# (7)代理
# (1)一個類型 六個屬性# (2)get請求# (3)post請求# (4)代理# (5)cookie 驗證碼
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 請求資源路徑# params 參數# kwargs 字典response = requests.get(url=url, params=data, headers=headers)content = response.textprint(content)
1.參數使用params傳遞
2.參數無需urlencode編碼
3.無需請求對象定制
4.請求資源路徑中的?可以加也可以不加
# -*-coding:utf-8 -*-# @Author:到點了,心疼徐哥哥# 奧利給干!!!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請求地址# data請求參數# 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請求不需要編解碼
2.post請求的參數是data
3.不需要請求對象的定制
1.打開古詩文網:
古詩文網
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.獲取驗證碼圖片
# 獲取驗證碼圖片code = soup.select("#imgCode")[0].attrs.get("src")code_url =" https://so.gushiwen.cn"+code
6.獲取圖片驗證碼后,保存到本地,然后觀察驗證碼進行輸入。
# 獲取圖片驗證碼后,保存到本地,然后觀察驗證碼進行輸入。# requests里面有一個session()方法,通過session的返回值 就能使用請求變成一個對象session = requests.session()# 驗證碼的url的內容response_code = session.get(code_url)# 注意此時要使用二進制數據content_code = response_code.content# wb的模式就是將二進制數據寫入文件with open("code.jpg","wb")as fp: fp.write(content_code)code_name = input("請輸入你的驗證碼:")、
7.點擊登錄
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.獲取動態驗證碼
9.打開得到的網站:
進入:
成功撒花!
1.隱藏域
2.驗證碼
超級鷹
網站:可用賬號及密碼: 賬號:action 密碼:action
進入之后進行Python語言Demo下載。
將下載好的Demo放入我們我們的工程文件中去,觀察其代碼:
1.將此處換成我們的用戶名和代碼
2.按照提示來替換我們的id:
3.生成我們自己的一個軟件id:
4.最后在print后面加上(),就可以啦!
5.由于返回字典,就可以通過鍵值對對應關系,找到我們的驗證碼的值了:
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: 圖片字節 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:報錯題目的圖片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 生成一個替換 96001 im = open("a.jpg", "rb").read() #本地圖片文件路徑 來替換 a.jpg 有時WIN系統須要// print(chaojiying.PostPic(im, 1902).get("pic_str")) #1902 驗證碼類型 官方網站>>價格體系 3.4+版 print 后要加()
Python爬蟲?? Urllib用法合集——?一鍵輕松入門爬蟲?
爬蟲中的戀愛學心理你get了嗎?一杯星巴克溫暖你的整個冬天——爬蟲bs4解析從入門到入坑
??1024不孤單!??Xpath爬蟲——你最忠實的伴侶:老規矩給我一分鐘,萬字教你入手Xpath!?
Python爬蟲實戰?? 從零開始分析頁面,抓取數據——爬取豆瓣電影任意頁數 看不懂你來找我!??
天青色等煙雨 爬蟲在等你??post請求?cookie登錄?handler處理器?
??? 好啦,這就是今天要分享給大家的全部內容了
??????如果你喜歡的話,就不要吝惜你的一鍵三連了~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/124786.html
摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
摘要:為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需要準備抓包工具,抓包工具,我使用的是自帶的,加上,這兩款軟件的安裝和使用,建議你還是學習一下,后面我們應該會用到。 妹子圖網站----前言 從今天開始就要擼起袖子,直接寫Python爬蟲了,學習語言最好的辦法就是有目的的進行,所以,接下來我將用10+篇的博客,寫爬圖片這一件事情。希望可以做好。 為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需...
摘要:為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需要準備抓包工具,抓包工具,我使用的是自帶的,加上,這兩款軟件的安裝和使用,建議你還是學習一下,后面我們應該會用到。 妹子圖網站----前言 從今天開始就要擼起袖子,直接寫Python爬蟲了,學習語言最好的辦法就是有目的的進行,所以,接下來我將用10+篇的博客,寫爬圖片這一件事情。希望可以做好。 為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需...
摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...
閱讀 1266·2021-11-24 09:39
閱讀 1515·2021-09-07 09:59
閱讀 3479·2019-08-30 15:54
閱讀 2474·2019-08-30 11:00
閱讀 2669·2019-08-29 15:06
閱讀 2159·2019-08-26 13:52
閱讀 427·2019-08-26 13:24
閱讀 2489·2019-08-26 12:20