爬虫实战篇--更换代理ip

背景
我们在爬取网站数据,防止被对方服务器发现的一个最重要的操作是更换代理ip,因为你的电脑主机在局域网下的ip是固定的,所以你经常使用一个代理ip对网站进行大规模爬取,就容易被对方服务器检测出来是非人为操作,那么你的主机ip会被他们拉入到ip黑名单池,导致爬取不到想要的数据了。

目前市面上有很多免费和收费的代理ip。对于免费和付费的代理,不妨依次使用,先用免费代理尝试,如果需要更高阶的爬取,那么可以考虑付费代理。需要提醒的是,代理的选择最好使用高匿名代理IP,不然你的主机IP可能还是会被对方服务器检测出来。

免费代理使用
对于需要维护免费的ip代理池的朋友可以参考下面的链接进行配置:
免费代理池项目

付费代理使用
付费代理测评

提取代理代码编写

import re,requests
ips1=[]
def get_ips():
    url=""   ##这里需要填写的是你的API链接
    response=requests.get(url)
    ips=re.findall('\\d+\\.\\d+\\.\\d+\\.\\d*\\:\\d+',response.text,re.S) ##正则表达式提取代理ip
    for i in range(len(ips)):
        ip = ips[i]
        proxies = {
                   'http': "http://" + ip
                   }    ##可选,http或者https
        try:
            test_ip_response = requests.get('https://sh.fang.anjuke.com/',proxies=proxies)##这里以访问安居客为例
        except Exception as e:
            print("此代理异常")
        print(test_ip_response.status_code)
        if test_ip_response.status_code == 200:  ##,如果能够访问安居客,状态码是200,那么就将代理加入到列表中
            ips1.append(proxies)
    return ips1

调用代理ip代码编写

ip_list=get_ips()
##请求网站信息
response = requests.get('https://sh.fang.anjuke.com,proxies=random.choice(ip_list)) ##加请求头,更换ip,

通过这种操作就成功地把代理加到请求链接啦。

猜你喜欢

转载自blog.csdn.net/weixin_43800002/article/details/107764385
今日推荐