目录
什么是代理?
在爬虫中,代理(Proxy)是指一个中间服务器,爬虫通过该服务器发送请求和接收响应。代理的作用是使爬虫在访问目标网站时隐藏自身的真实IP地址,从而达到匿名化、规避IP封禁、负载均衡等目的。
代理的作用
代码演示
通过代理ip,获取百度ip页面源码
import urllib.request
url = 'http://www.baidu.com/s?wd=ip'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0'
}
request = urllib.request.Request(url=url,headers=headers)
proxies = {'http':'8.130.54.67:4000'}
handler = urllib.request.ProxyHandler(proxies=proxies)
opener = urllib.request.build_opener(handler)
response = opener.open(request)
content = response.read().decode('utf-8')
with open('daili.html','w',encoding='utf-8')as fp:
fp.write(content)
其中,proxies中的值是代理ip
可以在国内高匿HTTP免费代理IP_IP代理_HTTP代理 - 快代理 (kuaidaili.com)中获取一些免费的代理ip
因为是免费的,所以不太稳定,可能程序不能正常运行,这时候可以多试几个代理ip。
运行成功后,就会写入daili.html中,用浏览器打开
此时,发现并没有到达ip页面,而是回到了首页
百度可能对代理服务器发送的请求有额外的反爬策略。通过代理服务器发出的请求,可能会因为来源可疑而返回首页,而不提供实际的搜索结果。不过,只要能正常生成源码,说明代理请求是成功了的,只是百度可能有一些反爬手段,导致没办法到达ip页面。