为什么我的python爬虫有一些非动态的数据爬不到?

'网上发⾏中签率(%)', '网上有效申购股数(万股)','网上有效申购户数(户)','⽹上超额认购', '线下配售中签率(%)','线下有效申购股数(万股)','线下有效申购户数(户)','线下配售认购倍数'
一共八个数据,爬到的结果为“none”,请问此情况是否有解?应该是parameters没设置好。

import requests 
import requests. cookies 
import json 
import time
import pandas as pd
import csv


#接近成功的版本
def collect():
  url = 'https://datacenter-web.eastmoney.com/api/data/v1/get'
  r = requests.get(url, verify=False)
  headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
  params = {
      'reportName' :  'RPTA_APP_IPOAPPLY',
      'columns': 'ALL',
    }
  res = requests.get(url = url, headers = headers, params= params).json()
  for li in res['result']['data']:
    secid= '0'+'.' + li['SECUCODE'][:6] if li['SECUCODE'][-2:] == 'SZ' else '1'+'.' + li['SECUCODE'][:6]
    urlLi = 'https://push2.eastmoney.com/api/qt/stock/get'
    paramsLi ={
        'fltt': '2',
        'invt': '2',
        'fields': 'f78,f58,f59,f86,f43,f169,f170,f44,f45,f46,f47,f116,f117,f162,f167,f60,f137,f469,f434,f470,f459,f471,f292',
        'secid' : secid
    }
    resLi = requests.get(url = urlLi, headers = headers, params= paramsLi).json()
    dic = {
      '序号' : res['result']['data'].index(li) + 1,
      '股票代码' : li['SECURITY_CODE'],
      '股票简称' : li['SECURITY_NAME'],
      '发行价' : li['ISSUE_PRICE'],
      '最新价' : resLi['data']['f43'],
      '网上发⾏中签率(%)' : li['ONLINE_ISSUE_LWR'],
      '网上有效申购股数(万股)' : li['ONLINE_VA_SHARES'],
      '网上有效申购户数(户)' : li['ONLINE_VA_NUM'],
      '⽹上超额认购' : li['ONLINE_ES_MULTIPLE'],
      '线下配售中签率(%)' : li['OFFLINE_VAP_RATIO'],
      '线下有效申购股数(万股)' : li['OFFLINE_VATS'],
      '线下有效申购户数(户)' : li['OFFLINE_VAP_OBJECT'],
      '线下配售认购倍数' : li['OFFLINE_VAS_MULTIPLE'],
      '总发⾏数量(万股)' : li['TOTAL_ISSUE_NUM'],
      '开盘溢价(%)' : li['LD_OPEN_PREMIUM'],
      '⾸⽇涨幅(%)' : li['LD_CLOSE_CHANGE'],
    }
    print(dic)
    csv.writer(open('IPO Earning.csv','a',encoding = 'utf-8-sig', newline='')).writerow(dic.values())
if  __name__ == '__main__':
  csv.writer(open('IPO Earning.csv','a',encoding = 'utf-8-sig', newline='')).writerow(['序号','股票代码', '股票简称', '发行价' , '最新价',  '网上发⾏中签率(%)', '网上有效申购股数(万股)','网上有效申购户数(户)','⽹上超额认购', '线下配售中签率(%)','线下有效申购股数(万股)','线下有效申购户数(户)','线下配售认购倍数', '总发⾏数量(万股)','开盘溢价(%)', '⾸⽇涨幅(%)'])
  collect()

有None不是很正常吗
你看页面上有没有啊。还有不知道你想获取的事那个页面的数据

数据来自东方财富
https://datacenter-web.eastmoney.com/api/data/v1/get

其中,你使用了 requests 库来访问网页,并设置了 headers 和 params 来确定请求的内容。在爬取数据后,你将数据处理成了字典的形式,并使用 csv.writer() 将数据写入了一个 CSV 文件中。

但是在你的代码中,有一些地方可能会导致爬取不到数据:

你在请求的 url 上使用了 verify=False,这可能会导致请求不到数据。
如果网页的结构发生了变化,可能需要修改爬虫代码来适应新的网页结构。
如果数据是动态渲染的,可能需要使用 selenium 来模拟浏览器爬取网页。
希望上述信息能对你有所帮助。

https://blog.csdn.net/weixin_43737959/article/details/124087769
少年参考下这个

我看了下,你通过那个接口返回的数据中这8字段的值都为空了,你能在网页上看到这几个数据吗,能的话说明那几个属性是动态加载的,试试selenium通过调用chrome浏览器打开那个网页,然后获取网页源码进行解析。如果是这样的话,那你的代码可能都要改,因为其它数据也在网页源码里面,你就没必要不同的数据用不同的方法获取了,直接都从源码里面解析到。

接口数据为空的话,看一下网页中显示的数据可以直接从网页中用xpath解析提取不(爬取网页,ctrl+F搜一下就知道了),可以的话,直接爬取网页,然后解析内容就行。不行就是动态加载的,找不到有效接口的话,用selenium,这个最简单!

怀疑URL没写完整