1.什么是代理?
可以理解为,当你去请求一个网站的时候,不是直接请求这个网站,而是通过代理去请求这个网站,然后代理再把得到的内容发给你。就比如你想查询今天的天气,你没有直接搜索今天的天气,而是打电话给你的朋友,让他帮助你去搜索了今天的天气,然后他通过电话中告诉了你天气。那么提供天气信息的人可能无法知道真正查询的人是你,而非你的朋友。
2.在哪里可以找到代理?
好用的代理几乎都是需要付费的,没必要去尝试寻找到一个免费的代理。价格方面现在(2021年)一般包月200-500块(当然这只是最基础款,如果你为某些大型公司工作的话,一天花费上千元用来买代理也并非什么不可思议的事情)
当然如果你的使用量很少的话,或许也可以找到更便宜的按量付费,但那通常就失去了使用代理的意义
由于代理服务商没有为我提供广告费,所以我并不打算在这里推荐付费代理服务商,如果你需要相关方面的信息,通过百度就可以很容易找到。或者通过知乎查看相关问题,例如“哪一家的付费代理更好?”
3.为什么要使用代理?我需要使用代理吗?
使用代理主要是防止对方网站封ip,如果对方网站不封ip,一般来说没有必要使用代理
注:请不要尝试通过代理去逃避相关的法律责任,或者真的以为这样可以隐藏自己,这种想法多半是不现实的。
4.代理的使用
将代理保存进入一个字典之中,格式为
proxies = {
"http": "http://1.1.1.1:1111",
"https": "https://1.1.1.1:1111"
}
注意:里面的内容需要填写真实的代理地址,不能直接写1.1.1.1
然后将该字典添加到requests的proxies参数中即可
import requests
url = "http://httpbin.org/get"
proxies = {
"http": "http://115.*.*.*:15905",
"https": "https://115.*.*.*:15905"
}
r = requests.get(url, proxies=proxies)
print(r.text)
在返回的响应内容中,可以查看到我们的ip地址已经变为了我们的代理地址
5.代理使用密码
一般来说,付费的代理也不是随意使用的,可能会要求你添加白名单或者使用密码,具体按照你付费的地方的说明即可。
如果需要使用密码,就将用户名和密码填在前面即可,修改为以下格式
proxies = {
"http": "http://username:password@115.*.*.*:15905",
"https": "https://username:password@115.*.*.*:15905"
}
例如用户名为xialaodi,密码为123456,就这样填写即可
proxies = {
"http": "http://xialaodi:123456@115.*.*.*:15905",
"https": "https://xialaodi:123456@115.*.*.*:15905"
}