??????
???Hello,大家好我叫是Dream呀,一個有趣的Python博主,小白一枚,多多關(guān)照???
???CSDN Python領(lǐng)域新星創(chuàng)作者,大二在讀,歡迎大家找我合作學習
?入門須知:這片樂園從不缺乏天才,努力才是你的最終入場券!???
?最后,愿我們都能在看不到的地方閃閃發(fā)光,一起加油進步???
???“一萬次悲傷,依然會有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.以字符串形式來返回網(wǎng)頁的源碼
# 以字符串形式來返回網(wǎng)頁的源碼print(response.text)
3.返回一個url地址
# 返回一個url地址print(response.url)
https://www.baidu.com/
4.返回的是二進制數(shù)據(jù)
# 返回的是二進制數(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)一個類型以及六個方法# (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 參數(shù)# kwargs 字典response = requests.get(url=url, params=data, headers=headers)content = response.textprint(content)
1.參數(shù)使用params傳遞
2.參數(shù)無需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請求參數(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請求不需要編解碼
2.post請求的參數(shù)是data
3.不需要請求對象的定制
1.打開古詩文網(wǎng):
古詩文網(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.獲取驗證碼圖片
# 獲取驗證碼圖片code = soup.select("#imgCode")[0].attrs.get("src")code_url =" https://so.gushiwen.cn"+code
6.獲取圖片驗證碼后,保存到本地,然后觀察驗證碼進行輸入。
# 獲取圖片驗證碼后,保存到本地,然后觀察驗證碼進行輸入。# requests里面有一個session()方法,通過session的返回值 就能使用請求變成一個對象session = requests.session()# 驗證碼的url的內(nèi)容response_code = session.get(code_url)# 注意此時要使用二進制數(shù)據(jù)content_code = response_code.content# wb的模式就是將二進制數(shù)據(jù)寫入文件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.獲取動態(tài)驗證碼
9.打開得到的網(wǎng)站:
進入:
成功撒花!
1.隱藏域
2.驗證碼
超級鷹
網(wǎng)站:可用賬號及密碼: 賬號:action 密碼:action
進入之后進行Python語言Demo下載。
將下載好的Demo放入我們我們的工程文件中去,觀察其代碼:
1.將此處換成我們的用戶名和代碼
2.按照提示來替換我們的id:
3.生成我們自己的一個軟件id:
4.最后在print后面加上(),就可以啦!
5.由于返回字典,就可以通過鍵值對對應(yīng)關(guā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:報錯題目的圖片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系統(tǒng)須要// print(chaojiying.PostPic(im, 1902).get("pic_str")) #1902 驗證碼類型 官方網(wǎng)站>>價格體系 3.4+版 print 后要加()
Python爬蟲?? Urllib用法合集——?一鍵輕松入門爬蟲?
爬蟲中的戀愛學心理你get了嗎?一杯星巴克溫暖你的整個冬天——爬蟲bs4解析從入門到入坑
??1024不孤單!??Xpath爬蟲——你最忠實的伴侶:老規(guī)矩給我一分鐘,萬字教你入手Xpath!?
Python爬蟲實戰(zhàn)?? 從零開始分析頁面,抓取數(shù)據(jù)——爬取豆瓣電影任意頁數(shù) 看不懂你來找我!??
天青色等煙雨 爬蟲在等你??post請求?cookie登錄?handler處理器?
??? 好啦,這就是今天要分享給大家的全部內(nèi)容了
??????如果你喜歡的話,就不要吝惜你的一鍵三連了~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/124786.html
摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需要準備抓包工具,抓包工具,我使用的是自帶的,加上,這兩款軟件的安裝和使用,建議你還是學習一下,后面我們應(yīng)該會用到。 妹子圖網(wǎng)站----前言 從今天開始就要擼起袖子,直接寫Python爬蟲了,學習語言最好的辦法就是有目的的進行,所以,接下來我將用10+篇的博客,寫爬圖片這一件事情。希望可以做好。 為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需...
摘要:為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需要準備抓包工具,抓包工具,我使用的是自帶的,加上,這兩款軟件的安裝和使用,建議你還是學習一下,后面我們應(yīng)該會用到。 妹子圖網(wǎng)站----前言 從今天開始就要擼起袖子,直接寫Python爬蟲了,學習語言最好的辦法就是有目的的進行,所以,接下來我將用10+篇的博客,寫爬圖片這一件事情。希望可以做好。 為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需...
摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優(yōu)秀的時候,你應(yīng)該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設(shè)計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數(shù)據(jù)結(jié)構(gòu)、語法...
閱讀 1371·2021-11-24 09:39
閱讀 1626·2021-09-07 09:59
閱讀 3543·2019-08-30 15:54
閱讀 2530·2019-08-30 11:00
閱讀 2737·2019-08-29 15:06
閱讀 2214·2019-08-26 13:52
閱讀 489·2019-08-26 13:24
閱讀 2571·2019-08-26 12:20