'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行,在运行文件('C:/Users/vermanjb/JiraScraping.py',wdir='C:/Users/vermanjb')

文件"C:\ProgramFiles\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py",第699行,在运行文件中execfile(文件名,命名空间)

文件"C:\ProgramFiles\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py",第88行,在execfile中exec(compile(open(filename,'rb').read(),filename,'exec'),namespace)

文件"C:\Users/vermanjb/JiraScraping.py",第12行,位于response=requests.get(URL,proxys=PROXY)

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

文件"C:\Program Files\Anaconda3\lib\site packages\requests\api.py",第53行,请求中return session.request(method=method,url=url,**kwargs)

文件"C:\ProgramFiles\Anaconda3\lib\site packages\requests\sessions.py",第459行,位于要求prep.url,代理,流,验证,证书

文件"C:\ProgramFiles\Anaconda3\lib\site packages\requests\sessions.py",第619行,位于合并环境设置proxys.setdefault(k,v)

AttributeError:"set"对象没有属性"setdefault">

至少有两个问题需要解决:

  1. proxies参数应该是dict,而不是集合
  2. headers参数中存在语法错误

试试这个:

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)

最新更新