提问者:小点点

“set”对象没有属性“setdefault”。使用请求刮取数据时出错


我试图击中一个网站使用python请求,但它给我的错误。

import requests 
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'}
URL = ""
PROXY = {'https://surfproxy.de.db.com:8080' }
response = requests.get(URL , proxies = PROXY, headers: headers)

错误日志:

文件“”,第1行,在runfile('C:/Users/vermanjb/jirascraping.py',wdir='C:/Users/vermanjb'中)

文件“C:\Program Files\Anaconda3\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第699行,在runfile execfile(文件名,命名空间)中

文件“C:\Program Files\Anaconda3\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第88行,在execfile exec(compile)(open(filename,'rb')中。read(),文件名,'exec'),命名空间)

文件“C:/Users/vermanjb/jirascraping.py”,第12行,响应=请求。获取(URL,代理=代理)

文件"C:\Program Files\Anaconda3\lib\site-包\请求\api.py",第67行,在get返回请求('get',url,params=params,**kwargs)

请求返回会话中的文件“C:\Program Files\Anaconda3\lib\site packages\requests\api.py”,第53行。请求(方法=方法,url=url,**kwargs)

文件“C:\Program Files\Anaconda3\lib\site packages\requests\sessions.py”,第459行,位于request prep.url、代理、流、验证、证书中

文件“C:\Program Files\Anaconda3\lib\site packages\requests\sessions.py”,第619行,位于合并\u环境\u设置代理中。设置默认值(k,v)

AttributeError:“set”对象没有属性“setdefault”


共1个答案

匿名用户

你至少应该解决两个问题:

  1. 代理参数应为dict,而不是集合

试试这个吧:

headers = {'User-Agent': 'Mozilla/5.0...'}
url = 'http://www.yoursite.com/'
proxies = {
    'http': 'http://surfproxy.de.db.com:8080',
    'https': 'http://surfproxy.de.db.com:8080'
}
response = requests.get(url , proxies=proxies, headers=headers)