可以进行请求的响应和转发
如果我们使用爬虫对一个网站在一段时间内发起一个高频请求,该网站会检测出这个异常的现象,并将异常的请求 IP 获取,将 IP 加入到黑名单,然后改 IP 在近期就无法再次对该网站进行访问。
匿名度 | 是否知道使用代理 | 是否知道真实IP |
---|---|---|
透明 | 是 | 是 |
匿名 | 是 | 否 |
高匿 | 否 | 否 |
类型 | 功能 |
---|---|
http | 只能转发http协议的请求 |
https | 只能转发https协议的请求 |
一般的代理服务器两种类型均支持
条条大路通罗马,自己的 IP 被封了不能用,就得买别人的 IP
当然也是可以白嫖的,点击下方图片进入网站,注册登录之后,可以每天白嫖10个1-5分钟的ip,如果需要更多,就只能自己买了,看起来很便宜的样子。
大概这么配置一下,即可生成一个 API 接口,需要 IP 的时候调用一下就可以了,具体怎么选择,看个人需求。
def get_proxies():
url_ip_port = """API""" # 此处填写获取的API
ip_port_json = requests.get(url_ip_port).json()
print('已获取新ip_port:{ip_port},到期时间:{ExpireTime}'.format(ip_port=ip_port_json['data'][0]['IP'],
ExpireTime=ip_port_json['data'][0]['ExpireTime']))
proxies = {
"https": 'http://{}'.format(ip_port_json['data'][0]['IP']),
}
return proxies
搜狗主页代码里可以获取到本机 IP 地址
语法:
在请求中添加一个为 proxies 的参数
值为:{“https”: ‘http://【ip:port】’,}
if __name__ == '__main__':
User_Agent_list = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763',
'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4292.2 Safari/537.36']
headers = {'User_Agent': random.choice(User_Agent_list)}
# 本机访问
sogou_index = requests.get(url='https://www.sogou.com/', headers=headers,).text
tree = etree.HTML(sogou_index)
print(tree.xpath('/html/head/script[1]//text()'))
# 代理服务器访问
sogou_index = requests.get(url='https://www.sogou.com/', headers=headers, proxies=get_proxies()).text
tree = etree.HTML(sogou_index)
print(tree.xpath('/html/head/script[1]//text()'))
用 Redis 搭一个 IP 池,需要时从 Redis 里随机取一个出来,定时自动删除,简直不要太舒服。