bobby老师,您好,我在使用IP代理的时候遇到一些问题。
简述:
不使用代理的时候,可以少量爬取boss直聘的数据。
使用了代理之后,无法爬取boss直聘的数据,一条也不行,先后试了阿布云和小象代理,都是如此。
尝试接入代理之后爬取知乎热榜数据,有返回结果,证明代理的接入是没有问题的。
那么问题出在哪儿呢?
附一些截图:
(1)代理的设置:
(2)尝试是否可以更换IP:
(3)用代理爬取知乎热榜
证明代理是没有问题的

(4)用代理爬取boss直聘,只会出现如下的乱码:
(5)不接代理,只添加user-agent和cookie,反而能获取到结果(但是速度较慢)

这是怎么回事呢……卡在这个地方好久了……
追加编辑,贴上代码:
“”"
(1) 不使用代理爬取boss直聘
"""
import requests
url = "https://www.zhipin.com/job_detail/846aab1aa2dbcd491nRy3dm_F1dR.html"
# 这里是直接【F12】从浏览器复制粘贴的cookie
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'cookie':'(太长了,删去)'}
res = requests.get(url=url,headers=headers)
print(res.status_code)
print(res.text)
“”"
(2) 使用代理爬取知乎热榜
"""
import requests
# 目标页面(知乎热榜)
targetUrl = "https://www.zhihu.com/hot"
# 代理服务器
proxyHost = "http-dyn.abuyun.com"
proxyPort = "9020"
# 代理隧道验证信息(通行证书和通行密钥)
proxyUser = "H4D601377P1V052D"
proxyPass = "93A1F9B59F94D644"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 同样,直接【F12】复制cookie
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'cookie':'(太长,略去)'}
resp = requests.get(url=targetUrl,headers=headers,proxies=proxies)
print(resp.status_code)
print(resp.text)
“”"
(3) 使用代理爬取boss直聘
"""
import requests
# 目标页面
url = "https://www.zhipin.com/job_detail/846aab1aa2dbcd491nRy3dm_F1dR.html"
# 代理服务器
proxyHost = "http-dyn.abuyun.com"
proxyPort = "9020"
# 代理隧道验证信息
proxyUser = "H4D601377P1V052D"
proxyPass = "93A1F9B59F94D644"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 同样,直接【F12】复制cookie
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'cookie':'(略)'}
resp = requests.get(url=targetUrl,headers=headers,proxies=proxies,verify=False)
print(resp.status_code)
print(resp.text)
(就是这以上三个)
注:阿布云的密钥是可用的:
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
了解课程