怎么用python批量获取免费代理IP

如今 , 需要使用代理IP的地方有很多 , 例如网络投票、大数据分析、人工智能等领域 。那么如何获取代理IP呢?很多人想到了免费代理IP , 免费不用钱 , 岂不美哉 。虽然个人不太建议使用免费代理IP , 但还是给大家分享下思路方法 。

怎么用python批量获取免费代理IP

文章插图
 
一、收集网站
想要获取免费代理IP , 首先得收集一些有免费代理IP的网站 , 然后编写代码去批量获取网站上的免费代理IP 。这里就不说有哪些网站呢 , 自己去百度一搜 , 大把的有 。
二、分析网站
收集到网站后 , 对含有免费代理IP的网页进行分析 , 比如总共有多少页 , 想要的数据是在哪里 , 要怎么来获取 。
三、编写代码
分析完网站后 , 就可以开始编写代码了 , 这里贴出代码 , 仅供参考 。
import requestsimport csvimport pandas as pdfrom fake_useragent import UserAgentimport time#获取含有免费代理IP的所有页面urldef 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) + endUrlpage_url_list.Append(page_url)return page_url_list#请求所有免费代理IP的页面url , 获取免费代理IPdef 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__':#前半部分urlstartUrl = '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)也许代码不够完善 , 不当之处欢迎指正 , 希望和大家一起交流 。

【怎么用python批量获取免费代理IP】


    推荐阅读