Python爬虫(十二)代理在爬虫中的应用

65 阅读3分钟

代理在爬虫中的应用主要是破解封IP这种反扒机制。

对于爬虫,许多门户网站都是对其有限制的,手段各不相同,像我的博客,就有封ip的反爬操作。

大概就是,某一个ip在一分钟之内访问了我20次以上,我这里默认将他视为爬虫程序。限制这个ip十分钟不可访问。

具体请移步《Thinkphp5使用redis限制网络数据爬虫访问》这篇文章中有详细的介绍。

 

其实,要破解我这种简单的限制很简单,使用代理就可以。3

那么,什么代理呢?

 

一:代理

代理实际上指的就是代理服务器,英文叫作proxy server,它的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站。在我们正常请求一个网站时,是发送了请求给Web服务器,Web服务器把响应传回给我们。如果设置了代理服务器,实际上就是在本机和服务器之间搭建了一个桥,此时本机不是直接向Web服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务器,然后由代理服务器再发送给Web服务器,接着由代理服务器再把Web服务器返回的响应转发给本机。这样我们同样可以正常访问网页,但这个过程中Web服务器识别出的真实IP就不再是我们本机的IP了,就成功实现了IP伪装,这就是代理的基本原理。

 

二:代理的作用

1:突破自身ip访问的限制

2:可以隐藏自身真是的ip,免受攻击。

 

三:代理相关的网站:

1:快代理(免费代理貌似只有http:www.kuaidaili.com/free/intr/1…

2:66免费代理网(www.66ip.cn/2632.html)

3:齐云代理(proxy.ip3366.net/free/   这个有https代理)

 

四:代理类型

http:只能被应用到http协议对应的url中

https:只能被应用到https协议对应的url中

 

五:小试一下

我这里爬取的网址是:

www.baidu.com/s?wd=ip&ie=…

1.png

 

这里刚好可以看到访问这个网址的ip

 

我这里使用快代理上边的代理网址,但是我没有找到https代理,我就寻思,咱能不能用http试一下子呢?

代码如下;

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2022/3/8 18:23
# @Author  : camellia
# @Email   : 805795955@qq.com
# @File    : agent.py
# @Software: PyCharm

# 引用request模块
import requests
# UA伪装 将对应的User-Agent封装到一个字典中(浏览器标识去浏览器中用f12查看源代码获取就好了)
headers={
    "User-Agent":'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
# 请求参数
query=''
# 1:指定url
url = 'https://www.baidu.com/s?wd=ip&ie=UTF-8'
# 这里用到了 request.get的第二个参数params
# 2:模拟网络请求链接
responce = requests.get(url=url, headers=headers,proxies={"https":"124.70.46.14:3128"})
# 3:获取响应数据
content = responce.text
# 4:持久化存储
with open('ip.html', 'w', encoding='utf-8') as fe:
    fe.write(content)
    print('爬取完成!')

使用http代理请求https链接报错:

TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
During handling of the above exception, another exception occurred:

 

看来是不行。找一个https代理再试试。我尝试了一下齐云代理中的https代理

将上边程序中的ip改一下:

2.png

爬取成功,爬取下来的页面:

3.png

Ip确实显示在山东青岛

 

六:代理的匿名度

透明:服务器知道该次请求使用了代理,也知道请求对应的真是ip

匿名:知道使用了代理,不知道真实ip

高匿:不知道使用了代理,更不知道真实ip

 

以上大概就是 代理在爬虫中的应用,有好的建议,请在下方输入你的评论。