據說:看我文章的帥帥 都有個習慣:先點贊、收藏再看
目錄
?? 一、背景知識:requests
🏀 1、pip安裝requests
🏈 2、pycharm安裝requests
?? 3、一行代碼使用requests
🎾 4、requests常用呼叫(get、post)
🏐 5、requests回傳引數
🕷 二、蜘蛛的背景知識
🏉 1、蜘蛛的應用場景
🎱 2、動態ip的好
🏆 三、代理ip
? 1、生成代理api
🏇 2、api生成代理ip
🚴 3、測驗代理ip
🎿 四、代理訪問
? 文末福利丨包郵送書 ?
🍅 1、三連送書
🍅 2、資料白嫖
🍅 聯系作者: 不吃西紅柿
🍅 作者簡介:CSDN 博客專家丨全站 Top 10🏆、HDZ 核心組成員、資訊技術智庫公號號主
🍅 簡歷模板、PPT 模板、學習資料、技識訓助,關注我,都給你
很多人看西紅柿的博客,花里胡哨的不知道從何學起,為了廣大人民群眾的根本利益,我決定寫一個閱讀指引,按照這個指引進行學習,多加練習,假以時日,勢必能夠……算了,還是看你自己能學多少以及能夠堅持到哪里了,加油!少年!畢竟收藏 = 學會
| 學習路徑指引(點擊解鎖) | 定位 | 適宜人群 |
|---|---|---|
| 全網最全丨 Python 快速入門專欄 | 入門級 | 沒有語言基礎,感興趣的大學生 |
| 全網最黑丨 Python 黑科技專欄 | 黑科技級 | 有一定的基礎,學以致用 |
| 大資料知識體系丨集錦專欄 | 作業/就業 | 大資料領域從業者,就業升職加薪 |
| 資訊技術智庫社區 | 吹水/互助 | 互聯網相關人員,白嫖獎品丨官方活動 |
一、背景知識:requests
欲練此功、必須先了解背景知識,python之所以強大,一個重要的原因就是,拿來即用的代碼庫豐富!
Python內置的urllib模塊,用于訪問網路資源,但是,它用起來比較麻煩,也缺少很多實用的高級功能,
更好的方案是使用requests
-
get方法
-
post方法
-
header引數,模擬用戶
-
data引數,提交資料
-
proxies引數,使用代理
1、pip安裝requests
pip install requests
2、pycharm安裝requests
舉一反四,其它包的安裝方法類似!
?
?
3、示例:一行代碼使用requests
匯入 Requests 模塊:
import requests
然后,嘗試獲取某個網頁,本例子中,我們來獲取 Github 的公共時間線:
r = requests.get('https://api.github.com/events')
4、requests常用呼叫(get、post)
-
GET 變數接受所有以 get 方式發送的請求,及瀏覽器地址欄中的 ?之后的內容,
-
POST 變數接受所有以 post 方式發送的請求,例如,一個 form 以 method=post 提交
-
REQUEST 支持兩種方式發送過來的請求,即 post 和 get 它都可以接受,顯示不顯示要看傳遞方法,get 會顯示在 url 中(有字符數限制),post 不會在 url 中顯示,可以傳遞任意多的資料(只要服務器支持),
5、requests回傳引數
-
r.status_code HTTP請求的回傳狀態,200表示連接成功,404表示失敗
-
r.text HTTP回應內容的字串形式,即url對應的頁面內容
-
r.encoding 從HTTP header中猜測的回應內容編碼方式(
-
r.apparent_encoding 從內容中分析出的回應內容編碼方式(備選編碼方式)
-
r.content HTTP回應內容的二進制形式
🕷 二、蜘蛛的背景知識
1、蜘蛛的應用場景
玩python的小伙伴,相信都聽過蜘蛛🕷吧,他有以下10個方面的妙用,本文中,西紅柿🍅將帶領大家玩一下,
?
| 應用場景 | 用途解釋 |
|---|---|
| 品牌保護 | 通過監控網路上的商標來保護品牌, |
| 競爭對手情報 | 在不被屏蔽的情況下,抓取競爭對手公開資料資訊, |
| 廣告驗證 | 確保廣告在任何地點任何場景被正確的展示 |
| 抓取和索引 | 一個站點可能會將抓取限制為每分鐘幾個請求,但它們有數千萬個頁面, |
| 網站測驗 | 準確的測驗始于設定正確的引數和正確的環境, |
| 郵件保護 | 保護敏感資料通信,利用代理服務器應對網路攻擊, |
| 股市資料 | 大規模獲取最新的股市資訊, |
| 搜索引擎優化監控 | 使用我們的實時爬蟲,監控您的SEO實時情況, |
| 市場調查 | 從任何位置獲取準確的資訊,例如可用性和價格, |
| 旅游聚合 | 使用爬蟲獲取正確的機票價格和酒店價格, |
2、動態ip的好
為什么要使用動態住宅IP?
真正的住宅IP地址,這意味著在您請求訪問時被阻止的可能性較小并且成功率更高,
-
無限并發
-
IP可用率>98%
-
API呼叫頻率:1秒
-
HTTP、HTTPS和SOCKS5 協議
三、代理ip
我使用的是代理ip網站,可以白嫖50M流量:
http://www.ipidea.net/?utm-source=csdn_bcxhx&utm-keyword=?csdn_bcxhx
1、生成代理api
?
?
到此,你拿到了代理ip的api鏈接,記得復制保存,等下要用,
如果你訪問這個api鏈接,會發現你拿到了ip和埠,
2、api生成代理ip
def get_proxie(self, api_url):
# 微信搜:資訊技術智庫,回復'原始碼'
user_agent = 'Mozilla/5.0 (Linux; Android 10; EVR-AL00 Build/HUAWEIEVR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.186 Mobile Safari/537.36 baiduboxapp/11.0.5.12 (Baidu; P1 10)'
headers = {
'User-Agent': user_agent}
res = requests.post(api_url,headers=headers, verify=True)
proxie = "https://%s"%(res.text)
proxies = {'http': proxie}
is_valid, proxies = visitor.proxie_check(proxies)
return is_valid, proxies
3、測驗代理ip
def proxie_check(self, proxies):
user_agent = 'Mozilla/5.0 (Linux; Android 10; EVR-AL00 Build/HUAWEIEVR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.186 Mobile Safari/537.36 baiduboxapp/11.0.5.12 (Baidu; P1 10)'
headers = {'User-Agent': user_agent}
res = requests.get("https://bbs.csdn.net/forums/ITID", headers=headers, proxies=proxies)
is_valid = 0
if res.status_code == 200 and "msg" not in str(proxies):
is_valid = 1
return is_valid, proxies
四、代理訪問
在上一步中,我們拿到了代理ip, 西紅柿使用的是ipidea: 可白嫖50M流量
當然,你如果還有其他方法,歡迎架微notomoto 進Python裙交流,
代碼解釋:
-
url為訪問的地址
-
proxies=proxie 為使用代理
class Visitor(object):
def __init__(self):
"""Inits Visitor with blah."""
self.eggs = 0
@time_decorator
def proxie_visit(self, proxie ,url):
user_agent_list = [
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)',
'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0',
'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
]
# 隨機挑選一個 user_agent
user_agent = random.choice(user_agent_list)
Referer= 'https://www.baidu.com/' # 偽裝成從baidu
headers = {
'Referer': Referer,
'User-Agent': user_agent}
# visit
res = requests.get(url, headers=headers, proxies=proxie)
return res.text
獲取完整代碼:公眾號資訊技術智庫,回復原始碼
到此,西紅柿演示了:使用代碼ip訪問網站,這是一個簡單的蜘蛛原型, 基于這個加以優化,可以實作很多有意思的事情,嘿嘿嘿,點到為止,
? 文末福利丨包郵送書 ?
🍅 送書規則
1、兩種參與方式:
-
三連文章:西紅柿會在發文后2-3天,從評論區選出4-6位走心評論,需要同時收藏和點贊,
-
訪問社區:在社區點贊評論或發帖,即會出現在《社區積分榜》,每周挑選2-3位小伙伴, 社區地址:https://bbs.csdn.net/forums/ITID
2、中獎通知:CSDN評論區、私信、Python全堆疊技術群里通知,
3、補充說明:選中者提供識訓地址和想要的書名,很多人問我該選哪一本,大家可以根據興趣、參考價值來選,西紅柿把官網價也附上了,
?
| 包郵送書書單(中獎者自選) | 官網地址 | 官網價 |
|---|---|---|
| 《Python 3.x基礎教程》 | https://item.jd.com/12542555.html | 60 |
| 《Python編程完全自學教程》 | https://item.jd.com/13130464.html | 99 |
| 《Python入門到人工智能實戰》 | https://item.jd.com/12648361.html | 79 |
| 《Python量化金融編程從入門到精通》 | https://item.jd.com/13045490.html | 79 |
| 《Python網路編程從入門到精通》 | https://item.jd.com/12659295.html | 69 |
| 《人工智能數學基礎與 Python機器學習實戰》 | https://item.jd.com/13504186.html | 79 |
| 《git從入門到精通》 | https://item.jd.com/12793056.html | 49 |
| 《黑客攻防從入門到精通》 | https://item.jd.com/12051029.html | 69 |
🍟 Python理論基礎:全網最全丨 Python 快速入門專欄
🍇 Python練習應用:全網最黑丨 Python 黑科技專欄
?
🍅 2、資料白嫖、技識訓助
| 公眾號 | 微信搜【資訊技術智庫】你的技術加油站 |
|---|---|
| 🍅 硬核資料 | 8大類丨20G 學習資料 + 行業資料 + 面試資料 |
| 🍅 交流加群 | 互幫互助、指點迷津、求資源在群里喊一聲 |
| 🍅 面試題庫 | 技術群小伙伴們共同投稿,熱乎的大廠面試真題 |
| 🍅 原始碼獲取 | 微信搜【資訊技術智庫】回復原始碼 |
| 👇👇👇 領取資料、技識訓助 👇👇👇 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/387960.html
標籤:其他
上一篇:matlab人才培養訓練指導
