发布日期:2022-11-16
python爬虫怎么更换ip?相信很多小伙伴会问这个问题,python应用程序作为目前市面主流的爬虫程序,针对web端,大数据的采集极其便捷,那么,python爬虫是怎么更换ip的,就给大家介绍下:
Python爬虫程序在采集任务的过程中,需要用到http代理,那么,首先我们获取到http代理提取ip的api链接(这里以巨量HTTP免费套餐为例),注册并领取每日1000ip的免费套餐,获取到API链接地址(根据自己业务需求设置提取数量),如下图:
1.配置环境,导入包
# IP地址取自国内髙匿国内代理IP巨量HTTP网站(每日可领取1000ip):
# 仅仅爬取首页IP地址就足够一般使用
from bs4 import BeautifulSoup
import requests
import random
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}
2.获取网页内容函数
def getHTMLText(url,proxies):
try:
r = requests.get(url,proxies=proxies)
r.raise_for_status()
r.encoding = r.apparent_encoding
except:
return 0
else:
return r.text
3.从代理ip网站获取代理ip列表函数,并检测可用性,返回ip列表
def get_ip_list(url):
web_data = requests.get(url,headers)
soup = BeautifulSoup(web_data.text, 'html')
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)
#检测ip可用性,移除不可用ip:(这里其实总会出问题,你移除的ip可能只是暂时不能用,剩下的ip使用一次后可能之后也未必能用)
for ip in ip_list:
try:
proxy_host = "https://" + ip
proxy_temp = {"https": proxy_host}
res = urllib.urlopen(url, proxies=proxy_temp).read()
except Exception as e:
ip_list.remove(ip)
continue
return ip_list
4.从ip池中随机获取ip列表
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
5.调用代理
if __name__ == '__main__':
url = 'www.juliangip.com/'
ip_list = get_ip_list(url)
proxies = get_random_ip(ip_list)
print(proxies)
以上就是爬虫怎么更换ip的详细教程,主要就是通过程序自动提取ip,然后检测ip是否失效,当失效以后,程序再次提取ip,如此循环,即可实现ip的更换。
2024-03-15
2024-03-15
2024-03-14
2024-02-28
2024-02-28
2022-11-15
关注巨量HTTP公众号
在线客服
客户定制
QQ客服 (09:00 - 24:00)
咨询热线 (09:00 - 24:00)
15629532303
扫码联系微信客服
公众号
扫码关注微信公众号
返回顶部