最帅爬虫_代理的设置

一,为什么用代理

在爬虫的过程中,我们经常会遇见很多网站采取了防爬取技术,或者说因为自己采集网。

站信息的强度和采集速度太大,给对方服务器带去了太多的压力。 如果你一直用同一个代理 ip 爬取这个网页,很有可能 ip 会被禁止访问网页,所以基本 上做爬虫的都躲不过去 ip 的问题。

二,代理的流程

形象地说,它是网络信息的中转站。
在这里插入图片描述

在我们正常请求一个网站时,是发送了 请求给 web 服务器,web 服务器把响应传回给我们。

如果设置了代理服务器,实际上就是 在本机和服务器之间搭建了一个桥。

此时本机不是直接向 web 服务器发起请求,而是向代理服务器发出请求。

请求会发送给代理服务器, 然后由代理服务器再发送给 web 服务器。

最后由代理服务器再把 web 服务器返回的响应转发给本机。

三,设置代理

免费的开放代理获取基本没有成本,我们可以在一些代理网站上收集这些免费代理,测试后如果可以用,就把它收集起来用在爬虫上面。
免费短期代理网站举例:
西刺免费代理IP
快代理免费代理
全网代理IP
如果代理IP足够多,就可以像随机获取User-Agent一样,随机选择一个代理去访问网站。

#引入随机模块
import requests,random

base_url = 'http://langlang2017.com'
#构建代理ip列表,里面一般包含http与HTTPS两种协议的代理ip,为了适应不同的网站,
#该模块会根据所要访问的网站的协议类型自动的选择合适的ip
procxy = [
    {'http':'HTTP://121.52.208.200:808',
    'https':'HTTPS://111.177.106.231:9999'
     },
    {'http':'HTTP://180.119.68.10:9999',
    'https':'HTTPS://123.169.34.240:4366'
    }
]
#随机选择列表中的字典,直到匹配上可以使用的ip
http = random.choice(procxy)
#timeout是超时时间,因为连接某些代理会比较慢,设置超时时间避免等待时间过长
response = requests.get(url=base_url,proxies=http,timeout=20)
contents = response.content.decode('utf-8')

#写入文件,当然这一步可有可无
with open('index.html','w',encoding='utf-8')as f:
    f.write(contents)

所以,专业爬虫工程师或爬虫公司会使用高品质的私密代理,这些代理通常需要找专门的代理供应商购买,再通过用户名/密码授权使用(舍不得孩子套不到狼)。

当然如果出现下面这个情况,不要怀疑代码写错了,而是代理ip不能用,这时候要么换ip要么就是花钱买稳定的ip
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值