国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

爬蟲requests模塊 入門到入獄 :基礎知識+實戰分析

yagami / 1265人閱讀

??????
???Hello,大家好我叫是Dream呀,一個有趣的Python博主,小白一枚,多多關照???
???CSDN Python領域新星創作者,大二在讀,歡迎大家找我合作學習
?入門須知:這片樂園從不缺乏天才,努力才是你的最終入場券!???
?最后,愿我們都能在看不到的地方閃閃發光,一起加油進步???
???“一萬次悲傷,依然會有Dream,我一直在最溫暖的地方等你”,唱的就是我!哈哈哈~???
??????

前言:requests庫其實和urllib庫是差不多的,但是urllib庫的話有點過時了,所以說一般都是用的request庫,下面一起來學習一下吧

一、基本使用

1.使用文檔

官方文檔
http://cn.python‐requests.org/zh_CN/latest/

快速上手
http://cn.python‐requests.org/zh_CN/latest/user/quickstart.html

2.安裝

pip install requests

安裝成功后會有successfully的提示,已安裝會有Requirement already satisfied的提示:

3.response的屬性以及類型

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)

二、簡單對比urllib和requests

1.urllib

# (1)一個類型以及六個方法# (2)get請求# (3)post請求  百度翻譯# (4)ajsx的get請求# (5)ajax的post請求# (6)cookie登錄 微博# (7)代理

2.requests

# (1)一個類型 六個屬性# (2)get請求# (3)post請求# (4)代理# (5)cookie 驗證碼

三、requests方法應用

1.requests的get請求

(1)請求百度界面

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)

(2)特點總結

1.參數使用params傳遞
2.參數無需urlencode編碼
3.無需請求對象定制
4.請求資源路徑中的?可以加也可以不加

2.requests的post請求

(1)請求百度翻譯

# -*-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)

(2)特點總結

1.post請求不需要編解碼
2.post請求的參數是data
3.不需要請求對象的定制

3.requests的cookie代理

(1)登錄古詩文網

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.打開得到的網站:

進入:

成功撒花!

(2)難點

1.隱藏域
2.驗證碼

四、自動識別驗證碼

1.首先找到超級鷹網站:

超級鷹

可用賬號及密碼: 賬號:action 密碼:action

2.然后在開發文檔中找到Python:


進入之后進行Python語言Demo下載。

3.修改代碼

將下載好的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

相關文章

  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • Python爬蟲入門教程 2-100 妹子圖網站爬取

    摘要:為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需要準備抓包工具,抓包工具,我使用的是自帶的,加上,這兩款軟件的安裝和使用,建議你還是學習一下,后面我們應該會用到。 妹子圖網站----前言 從今天開始就要擼起袖子,直接寫Python爬蟲了,學習語言最好的辦法就是有目的的進行,所以,接下來我將用10+篇的博客,寫爬圖片這一件事情。希望可以做好。 為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需...

    zqhxuyuan 評論0 收藏0
  • Python爬蟲入門教程 2-100 妹子圖網站爬取

    摘要:為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需要準備抓包工具,抓包工具,我使用的是自帶的,加上,這兩款軟件的安裝和使用,建議你還是學習一下,后面我們應該會用到。 妹子圖網站----前言 從今天開始就要擼起袖子,直接寫Python爬蟲了,學習語言最好的辦法就是有目的的進行,所以,接下來我將用10+篇的博客,寫爬圖片這一件事情。希望可以做好。 為了寫好爬蟲,我們需要準備一個火狐瀏覽器,還需...

    stackfing 評論0 收藏0
  • Python爬蟲學習路線

    摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...

    liaoyg8023 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<