SergeyLovesWorld 2023-01-17 16:42 采纳率: 100%
浏览 126
已结题

为什么我的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()

  • 写回答

8条回答 默认 最新

  • Ko-walski 2023-01-17 22:09
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 1月26日
  • 已采纳回答 1月18日
  • 赞助了问题酬金15元 1月17日
  • 创建了问题 1月17日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效