Python爬蟲技巧---設定代理IP
在學習Python爬蟲的時候,經常會遇見所要爬取的網站採取了反爬取技術,高強度、高效率地爬取網頁資訊常常會給網站伺服器帶來巨大壓力,所以同一個IP反覆爬取同一個網頁,就很可能被封,這裡講述一個爬蟲技巧,設定代理IP。
(一)配置環境
- 安裝requests庫
- 安裝bs4庫
- 安裝lxml庫
(二)程式碼展示
- # IP地址取自國內髙匿代理IP網站:http://www.xicidaili.com/nn/
- # 僅僅爬取首頁IP地址就足夠一般使用
- from bs4 import BeautifulSoup
- import requests
- import random
- def get_ip_list(url, headers):
- web_data = requests.get(url, headers=headers)
- soup = BeautifulSoup(web_data.text, 'lxml')
- ips = soup.find_all('tr')
- ip_list = []
- for i in range(1, len(ips)):
- ip_info = ips[i]
- tds = ip_info.find_all('td')
- ip_list.append(tds[1].text + ':' + tds[2].text)
- return ip_list
- def get_random_ip(ip_list):
- proxy_list = []
- for ip in ip_list:
- proxy_list.append('http://' + ip)
- proxy_ip = random.choice(proxy_list)
- proxies = {'http': proxy_ip}
- return proxies
- if __name__ == '__main__':
- url = 'http://www.xicidaili.com/nn/'
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
- }
- ip_list = get_ip_list(url, headers=headers)
- proxies = get_random_ip(ip_list)
- print(proxies)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 函式get_ip_list(url, headers)傳入url和headers,最後返回一個IP列表,列表的元素類似42.84.226.65:8888格式,這個列表包括國內髙匿代理IP網站首頁所有IP地址和埠。
- 函式get_random_ip(ip_list)傳入第一個函式得到的列表,返回一個隨機的proxies,這個proxies可以傳入到requests的get方法中,這樣就可以做到每次執行都使用不同的IP訪問被爬取的網站,有效地避免了真實IP被封的風險。proxies的格式是一個字典:{‘http’: ‘http://42.84.226.65:8888‘}。
(三)代理IP的使用
執行上面的程式碼會得到一個隨機的proxies,把它直接傳入requests的get方法中即可。
web_data = requests.get(url, headers=headers, proxies=proxies)
- 1
相關文章
- 如何用海外HTTP代理設定python爬蟲代理ip池?HTTPPython爬蟲
- 爬蟲代理IP的使用技巧爬蟲
- selenium+python設定爬蟲代理IP的方法Python爬蟲
- Python爬蟲怎麼設定動態IP代理,Python爬蟲要注意哪些事項?Python爬蟲
- 用Python爬蟲抓取代理IPPython爬蟲
- python爬蟲實戰:爬取西刺代理的代理ip(二)Python爬蟲
- Python代理IP爬蟲的簡單使用Python爬蟲
- Python 爬蟲IP代理池的實現Python爬蟲
- Python爬蟲工作對代理IP有哪些需求?Python爬蟲
- python爬蟲利用代理IP分析大資料Python爬蟲大資料
- 代理IP幫助Python爬蟲分析市場Python爬蟲
- python爬蟲之反爬蟲(隨機user-agent,獲取代理ip,檢測代理ip可用性)Python爬蟲隨機
- 如何建立爬蟲代理ip池爬蟲
- 爬蟲使用代理防封IP爬蟲
- 爬蟲如何使用ip代理池爬蟲
- 代理IP如何突破反爬蟲?爬蟲
- 爬蟲代理怎麼選ip爬蟲
- Python爬蟲動態ip代理防止被封的方法Python爬蟲
- Python爬蟲需要了解的代理IP知識Python爬蟲
- 快速構建Python爬蟲IP代理池服務Python爬蟲
- 實用爬蟲-02-爬蟲真正使用代理 ip爬蟲
- 爬蟲代理IP有哪些好處?爬蟲
- python 爬蟲 代理池Python爬蟲
- Python爬蟲代理池Python爬蟲
- 爬蟲中代理IP的常見方案爬蟲
- 爬蟲需要代理IP的基本要求爬蟲
- 網路爬蟲怎麼使用ip代理爬蟲
- 代理ip池對爬蟲有多重要爬蟲
- 爬蟲代理IP產品如何選擇爬蟲
- 爬蟲代理IP的三大作用爬蟲
- Python爬蟲抓取資料,為什麼要使用代理IP?Python爬蟲
- python爬蟲ip代理伺服器的簡要思路-VeCloudPython爬蟲伺服器Cloud
- 爬蟲為什麼要用IP代理更換IP地址爬蟲
- 動態ip代理:反網路爬蟲之設定User-Agent的常規方法爬蟲
- 爬蟲的代理ip怎麼用程式碼爬蟲
- 爬蟲工作使用代理IP有哪些優勢?爬蟲
- 如何利用ip住宅代理解決python爬蟲遇到反爬措施的問題?Python爬蟲
- Python代理IP的使用和代理池的設定Python