如今,需要使用代理IP的地方有很多,例如網路投票、大數據分析、人工智慧等領域。那麼如何獲取代理IP呢?很多人想到了免費代理IP,免費不用錢,豈不美哉。雖然個人不太建議使用免費代理IP,但還是給大家分享下思路方法。

一、收集網站
想要獲取免費代理IP,首先得收集一些有免費代理IP的網站,然後編寫代碼去批量獲取網站上的免費代理IP。這裡就不說有哪些網站呢,自己去百度一搜,大把的有。
二、分析網站
收集到網站後,對含有免費代理IP的網頁進行分析,比如總共有多少頁,想要的數據是在哪裡,要怎麼來獲取。
三、編寫代碼
分析完網站後,就可以開始編寫代碼了,這裡貼出代碼,僅供參考。
import requests
import csv
import pandas as pd
from fake_useragent import UserAgent
import time
#獲取含有免費代理IP的所有頁面url
def get_pageUrls(startUrl,endUrl,pageCount):
page_url_list = []
# range 從1開始,所以pageCount+1,左閉右開
for i in range(1,pageCount+1):
#頁面URL一般由三部分組成,前半部分url+第幾頁+後半部分url,
#有的頁面URL最後以頁數結尾,沒有後半部分,那麼endUrl設置為空字元串即可
page_url = startUrl + str(i) + endUrl
page_url_list.append(page_url)
return page_url_list
#請求所有免費代理IP的頁面url,獲取免費代理IP
def get_content(page_url_list):
ua =UserAgent()
data_list = []
for page_url in page_url_list:
try:
resp = requests.get(page_url, headers={'User-Agent': ua.random})
#如果免費代理IP是放在表格里,可以直接使用 pandas來獲取,比較簡單,
#若不是,則需要用BeautifulSoup,或者xpath,或正則表達式來提取
datas = pd.read_html(resp.text)
# print(datas)
data_list.append(datas)
time.sleep(2)
except:
print('錯誤的請求URL:'+page_url)
# print(data_list)
return data_list
# 將獲取到的免費代理IP保存到本地的Excel表格里,留待後用,也可以保存到TXT文本,或資料庫里
def save_csv(data_list,save_path):
for datas in data_list:
for data in datas:
# print(data)
data.to_csv(sava_path,mode='a',encoding='utf-8',header=1,index=0)
if __name__ == '__main__':
#前半部分url
startUrl = 'https://*******/free/inha/'
#頁數
pageCount = 4
#若頁面URL最後是以頁數結尾,後半部分url設置為空字元串
endUrl = ''
#文件保存路徑
save_path = r'D:3.xlsx'
page_url_list = get_pageUrls(startUrl,endUrl,pageCount)
data_list = get_content(page_url_list)
save_csv(data_list,save_path)
也許代碼不夠完善,不當之處歡迎指正,希望和大家一起交流。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/255556.html