python - “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/JiraScrapping.py', wdir='C:/Users/vermanjb')
文件“C:\Program Files\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py”,第 699 行,运行文件 execfile(文件名,命名空间)
文件“C:\Program Files\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py”,第 88 行,在 execfile exec(compile(open(filename, 'rb').read(), filename , 'exec'), 命名空间)
文件“C:/Users/vermanjb/JiraScrapping.py”,第 12 行,响应 = requests.get(URL , proxies = PROXY)
文件“C:\Program Files\Anaconda3\lib\site-packages\requests\api.py”,第 67 行,在 get return request('get', url, params=params, **kwargs)
文件“C:\Program Files\Anaconda3\lib\site-packages\requests\api.py”,第 53 行,请求返回 session.request(method=method, url=url, **kwargs)
文件“C:\Program Files\Anaconda3\lib\site-packages\requests\sessions.py”,第 459 行,在请求 prep.url、代理、流、验证、证书中
文件“C:\Program Files\Anaconda3\lib\site-packages\requests\sessions.py”,第 619 行,在 merge_environment_settings proxies.setdefault(k, v)
AttributeError:“set”对象没有属性“setdefault”
解决方案
您至少应该解决两个问题:
proxies
参数应该是一个 dict ,而不是一个集合。- 您的
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)
推荐阅读
- python - 如何从url读取和写入csv.gz到python
- html - Angular 8 从全屏尺寸的打印垫对话框中删除打印介质中的奇怪线条
- r - 如何根据单列中的重复项在列之间复制数据
- django - Django - 如何将多个外键字段(在 1 个模型内)的计数注释到同一模型
- python - 从数据框中选择行,考虑列的重复值
- spring-boot - 如何在 Spring Boot 测试中编写参数化测试?
- java - Spring Boot 无法使用 findAll 或 findByColumnName 方法获取关系实体
- graphql - 使用 Product Tag 查询产品
- c++ - 如何让这款石头、剪纸、剪刀游戏从计算机中获得正确的输出?
- dcom - Windows 7 与 Windows XP 上的远程 COM 服务器激活有何不同?