巨潮资讯(http://www.cninfo.com.cn/)数据爬取

'''
    巨潮资讯(http://www.cninfo.com.cn/)数据爬取

    最新公告网址:
    http://www.cninfo.com.cn/new/disclosure/stock?stockCode=601519&orgId=9900017431
    定期报告网址:
    http://www.cninfo.com.cn/new/disclosure/stock?stockCode=601519&orgId=9900017431#periodicReports
'''

import requests

url = 'http://www.cninfo.com.cn/new/hisAnnouncement/query'

#自动生成的文件头信息;
#最好再模拟不同的浏览器访问
headers = {
  "Accept": "application/json, text/javascript, */*; q=0.01",
  "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
  "Connection": "keep-alive",
  "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
  "Cookie": "JSESSIONID=DF28F2A2C38640EC78531475CEDABBDB; insert_cookie=37836164; routeId=.uc2; cninfo_user_browse=601519,9900017431,%E5%A4%A7%E6%99%BA%E6%85%A7|600519,gssh0600519,%E8%B4%B5%E5%B7%9E%E8%8C%85%E5%8F%B0|600030,gssh0600030,%E4%B8%AD%E4%BF%A1%E8%AF%81%E5%88%B8; SID=f3a336a7-e913-4de8-8dd0-1e8e3017bfbb; _sp_id.2141=9802fb76-2236-47f2-9215-9dfa6496e964.1697805509.7.1697884826.1697880028.64529e1c-582f-4bb7-acb8-73b2231212a5",
  "Origin": "http://www.cninfo.com.cn",
  "Referer": "http://www.cninfo.com.cn/new/disclosure/stock?stockCode=601519&orgId=9900017431",
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.57",
  "X-Requested-With": "XMLHttpRequest"
}

#post请求数据
data={
  "stock": "601519,9900017431",
  "tabName": "fulltext",
  "pageSize": "30",
  "pageNum": "1",
  "column": "sse",
  "category": "category_ndbg_szsh;category_bndbg_szsh;category_yjdbg_szsh;category_sjdbg_szsh;",
  "plate": "sh",
  "seDate": "",
  "searchkey": "",
  "secid": "",
  "sortName": "",
  "sortType": "",
  "isHLtitle": "true"
}
#证券代号
#"stock": "601519,9900017431",      #大智慧
#  "stock": "600030,gssh0600030",   #中信证券

# 发送GET请求,目的是获取总页数
response = requests.post(url, headers=headers, data=data).json()
totalpages = response['totalpages']+1

#外循环控制页数
for i in range(1,totalpages+1):
    #读取页面数据;第一页读取了2次
    page_no = str(i)
    data["pageNum"] = page_no
    response = requests.post(url, headers=headers, data=data).json()
    #print(response) #测试一下
    
    #内循环读取一页中的每一行数据  
    for item in response['announcements']:
        file_url = 'https://static.cninfo.com.cn/'+item['adjunctUrl']
        file_name = item['announcementTitle']
        print(file_name,'正在下载...',file_url)
        #将PDF文件数据写入本地文件
        response = requests.get(file_url,headers=headers)
        with open('./download/'+str(page_no)+'--'+file_name+'.pdf','wb') as file:
            file.write(response.content)
    print('-'*100)
    print(f'第{page_no}页')
    #break   #测试一次外循环
    
print("数据全部抓取,完美!")
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python webapi.cninfo.com.cn是中国上市公司信息网站(www.cninfo.com.cn)提供的Web API接口。它可以通过Python编程语言进行访问和使用。 这个API提供了一系列的接口,可以用于获取上市公司的信息和数据。用户可以通过接口获取公司的基础信息,如公司名称、注册地址等。同时,用户也可以获取公司的财务数据,如财务报表、财务指标等。此外,用户还可以获取公司的股东信息、高管信息以及公司公告等。 使用Python访问这个API可以帮助用户实现对上市公司信息的自动化处理和分析。对于金融机构、投资者和研究人员等,这个API可以提供一种更方便、快捷的途径来获取所需的数据。用户可以通过Python编写程序,调用这个API获取所需的信息,并进行后续的数据处理和分析。 对于想要使用这个API的用户,首先需要在中国上市公司信息网站(www.cninfo.com.cn)注册账号,并获取开发者API密钥。然后,用户可以使用PythonHTTP库对API进行访问,并传入相应的参数来获取所需的数据。用户也可以根据自己的需要,对API返回的数据进行解析和处理。用户可以将获取的数据用于展示、存储或进一步分析。 总之,Python webapi.cninfo.com.cn是一个方便的工具,可以帮助用户通过编程语言Python来获取中国上市公司的信息和数据。这个API的使用可以帮助用户实现自动化处理和分析,为相关人员提供更方便、快捷的途径来获取所需的金融数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值