yxx1196 发表于 2020-9-20 11:10:16

为什么我这里一直出空列表啊?

求助大佬们,我这里为什么一直出空列表啊?

liuzhengyuan 发表于 2020-9-20 11:11:14

检查元素和 python 爬取到的代码是不一样的,做爬虫时,要以 python 爬取到的为准

疾风怪盗 发表于 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-9-20 14:46:48

import requests,json

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={}'
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'}

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

yxx1196 发表于 2020-9-20 19:18:08

谢谢大佬{:5_101:}

狗宁 发表于 2020-9-20 20:33:19

现在好多网页的返回数据是json类型的,不能只用etree去解析源码。爬的时候用抓包工具看一下返回值的类型,不同类型用不同方法就可以了。

疾风怪盗 发表于 2020-9-20 20:47:19

yxx1196 发表于 2020-9-20 19:18
谢谢大佬

问题如果解决了,就设个最佳吧,把求助帖关了
页: [1]
查看完整版本: 为什么我这里一直出空列表啊?