鱼C论坛

 找回密码
 立即注册
查看: 4478|回复: 21

[已解决]Requests的session

[复制链接]
发表于 2019-9-22 20:55:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这个是从别人那里拷贝过来的代码,我想问一下这个报错是什么意思啊?
最佳答案
2019-9-24 20:34:28
你程序文件夹里是不是有名字为 requests.py 的文件?把那个文件重命名。
猎豹截图20190922205259.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-22 20:57:02 | 显示全部楼层
把整段代码放上来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-22 20:58:34 | 显示全部楼层
报错信息表示 requests 模块没有 Session 类
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-22 21:05:32 | 显示全部楼层
requests是有Session类的。但报错说没有。
可能的原因,你自己写的程序有命名为requests的,查找模块时先找到它了,而不是真正的Session模块。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2019-9-22 21:39:04 | 显示全部楼层
requests.session(),小写
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-22 22:29:12 | 显示全部楼层
幽梦三影 发表于 2019-9-22 21:39
requests.session(),小写

小写也试过,也是报错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-22 22:34:03 | 显示全部楼层
  1. import requests
  2. import csv
  3. import jsonpath
  4. kw = input('情输入想要查询的工作:')
  5. with open(f'{kw}.csv', 'a', newline='') as f:
  6.     csvWriter = csv.writer(f, dialect='excel')
  7.     csvWriter.writerow(['城市', '岗位', '薪资'])

  8. for i in range(1,11):
  9.     session = requests.Session()

  10.     headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
  11.                'Referer': 'https://www.lagou.com/jobs/list_Python%E7%88%AC%E8%99%AB?labelWords=&fromSearch=true&suginput='}
  12.     session.get('https://www.lagou.com/jobs/list_Python%E7%88%AC%E8%99%AB?labelWords=&fromSearch=true&suginput=', headers=headers)
  13.     cookies = session.cookies
  14.     print(cookies)
  15.     cookies = cookies.get_dict()
  16.     print(cookies)
  17.     data = {
  18.         'first': 'true',
  19.         'pn': i,
  20.         'kd': kw,}
  21.     req = session.post('https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false', headers=headers, data=data, cookies=cookies).json()

  22.     print(req)
  23.     req = req.get('content')
  24.     print(req)
  25.     req = req['positionResult']['result']
  26.     print(req)
  27.     cities = jsonpath.jsonpath(req, '$..city')
  28.     positionNames = jsonpath.jsonpath(req, '$..positionName')
  29.     salaries = jsonpath.jsonpath(req, '$..salary')
  30.     print(cities)
  31.     print(positionNames)
  32.     print(salaries)
  33.     for city, positionName, salary in zip(cities, positionNames, salaries):
  34.         print(city, positionName, salary)
  35.         with open(f'{kw}.csv', 'a', newline='') as f:
  36.             csvWriter = csv.writer(f, dialect='excel')
  37.             csvWriter.writerow([city, positionName, salary])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-22 22:37:23 | 显示全部楼层
冬雪雪冬 发表于 2019-9-22 21:05
requests是有Session类的。但报错说没有。
可能的原因,你自己写的程序有命名为requests的,查找模块时先 ...

我知道报错信息翻译过来是这个意思,但不知道为什么,一般不应该是有session类的吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-22 22:39:10 | 显示全部楼层
zltzlt 发表于 2019-9-22 20:57
把整段代码放上来
  1. import requests
  2. import csv
  3. import jsonpath
  4. kw = input('情输入想要查询的工作:')
  5. with open(f'{kw}.csv', 'a', newline='') as f:
  6.     csvWriter = csv.writer(f, dialect='excel')
  7.     csvWriter.writerow(['城市', '岗位', '薪资'])

  8. for i in range(1,11):
  9.     session = requests.Session()

  10.     headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
  11.                'Referer': 'https://www.lagou.com/jobs/list_Python%E7%88%AC%E8%99%AB?labelWords=&fromSearch=true&suginput='}
  12.     session.get('https://www.lagou.com/jobs/list_Python%E7%88%AC%E8%99%AB?labelWords=&fromSearch=true&suginput=', headers=headers)
  13.     cookies = session.cookies
  14.     print(cookies)
  15.     cookies = cookies.get_dict()
  16.     print(cookies)
  17.     data = {
  18.         'first': 'true',
  19.         'pn': i,
  20.         'kd': kw,}
  21.     req = session.post('https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false', headers=headers, data=data, cookies=cookies).json()

  22.     print(req)
  23.     req = req.get('content')
  24.     print(req)
  25.     req = req['positionResult']['result']
  26.     print(req)
  27.     cities = jsonpath.jsonpath(req, '$..city')
  28.     positionNames = jsonpath.jsonpath(req, '$..positionName')
  29.     salaries = jsonpath.jsonpath(req, '$..salary')
  30.     print(cities)
  31.     print(positionNames)
  32.     print(salaries)
  33.     for city, positionName, salary in zip(cities, positionNames, salaries):
  34.         print(city, positionName, salary)
  35.         with open(f'{kw}.csv', 'a', newline='') as f:
  36.             csvWriter = csv.writer(f, dialect='excel')
  37.             csvWriter.writerow([city, positionName, salary])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-22 22:39:10 | 显示全部楼层
CONGCONGCONGCLA 发表于 2019-9-22 22:37
我知道报错信息翻译过来是这个意思,但不知道为什么,一般不应该是有session类的吗

的确是有Session类
  1. >>> requests.Session()
  2. <requests.sessions.Session object at 0x03831ED0>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-22 22:39:41 | 显示全部楼层
zltzlt 发表于 2019-9-22 20:58
报错信息表示 requests 模块没有 Session 类

我知道报错信息翻译出来是这个意思,但不知道为什么会这样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-22 23:24:43 | 显示全部楼层
额,运行了一下楼主的代码,并没有报错,正常运行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-22 23:46:46 | 显示全部楼层
  1. session = requests.session()
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-23 01:29:54 | 显示全部楼层
冬雪雪冬大神说的 在shell里面验证是否有Session()的步骤,和查找是否带 requests字符的.py文件,都去验证和查找了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-23 11:14:50 | 显示全部楼层
requests版本太低了可能,输入
  1. pip install requests --upgrade
复制代码

更新一下包
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-23 11:40:24 | 显示全部楼层
Charles未晞 发表于 2019-9-23 11:14
requests版本太低了可能,输入
更新一下包

更新了,还是这个报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-23 11:41:48 | 显示全部楼层
当年的小法师 发表于 2019-9-22 23:24
额,运行了一下楼主的代码,并没有报错,正常运行。

我更新了requests包还是那个报错信息 而且在pycharm里和再anaconda里运行的报错是不一样的……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-23 21:27:32 | 显示全部楼层
小写啊
屏幕快照 2019-09-23 下午9.26.13.png
你看看哪里写错了吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-24 19:16:56 | 显示全部楼层
wongyusing 发表于 2019-9-23 21:27
小写啊

你看看哪里写错了吧

还有,他的session放for 循环里面了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-24 19:49:48 | 显示全部楼层
wongyusing 发表于 2019-9-23 21:27
小写啊

你看看哪里写错了吧

我改成小写了……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-1 20:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表