鱼C论坛

 找回密码
 立即注册
查看: 1117|回复: 6

[已解决]为什么我这里一直出空列表啊?

[复制链接]
发表于 2020-9-20 11:10:16 | 显示全部楼层 |阅读模式

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

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

x
求助大佬们,我这里为什么一直出空列表啊?
最佳答案
2020-9-20 14:46:48
  1. import requests,json

  2. start_url='http://yunhq.sse.com.cn:32041//v1/sh1/list/exchange/equity?select=code,name,open,high,low,last,prev_close,chg_rate,volume,amount,tradephase,change,amp_rate,cpxxsubtype,cpxxprodusta&begin={}&end={}'
  3. headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 Edg/85.0.564.51'}

  4. for i in range(2):
  5.     url=start_url.format(i*25,(i+1)*25)
  6.     print(f'第{i+1}个网页的url:{url}')
  7.     response=requests.get(url=url,headers=headers)
  8.     html_str=response.content.decode('GB2312')
  9.     data=json.loads(html_str)
  10.     print(data)
  11.     #print(data['list'][0][1])
  12.     with open(f'data{i+1}.json','w',encoding='utf-8') as f:
  13.         f.write(json.dumps(data))

复制代码
fb33907b242f304acd09e36a2ed403e.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-20 11:11:14 | 显示全部楼层
检查元素和 python 爬取到的代码是不一样的,做爬虫时,要以 python 爬取到的为准
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-20 11:20:41 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-9-20 14:19 编辑

不要光看网页上的,把你爬到的html打印出来,找找看有没有你要的元素,是否和网页一直,再爬数据

http://yunhq.sse.com.cn:32041//v1/sh1/list/exchange/equity?select=code,name,open,high,low,last,prev_close,chg_rate,volume,amount,tradephase,change,amp_rate,cpxxsubtype,cpxxprodusta&begin=0&end=25
你要的数据应该都在这个网页里,json格式

屏幕截图 2020-09-20 141555.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-20 14:46:48 | 显示全部楼层    本楼为最佳答案   
  1. import requests,json

  2. start_url='http://yunhq.sse.com.cn:32041//v1/sh1/list/exchange/equity?select=code,name,open,high,low,last,prev_close,chg_rate,volume,amount,tradephase,change,amp_rate,cpxxsubtype,cpxxprodusta&begin={}&end={}'
  3. headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 Edg/85.0.564.51'}

  4. for i in range(2):
  5.     url=start_url.format(i*25,(i+1)*25)
  6.     print(f'第{i+1}个网页的url:{url}')
  7.     response=requests.get(url=url,headers=headers)
  8.     html_str=response.content.decode('GB2312')
  9.     data=json.loads(html_str)
  10.     print(data)
  11.     #print(data['list'][0][1])
  12.     with open(f'data{i+1}.json','w',encoding='utf-8') as f:
  13.         f.write(json.dumps(data))

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-20 19:18:08 | 显示全部楼层
谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-20 20:33:19 | 显示全部楼层
现在好多网页的返回数据是json类型的,不能只用etree去解析源码。爬的时候用抓包工具看一下返回值的类型,不同类型用不同方法就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-20 20:47:19 | 显示全部楼层

问题如果解决了,就设个最佳吧,把求助帖关了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 16:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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