爬取网易财经全部A股上市公司年报

本文介绍如何获取所有A股上市公司的股票代码,并以东方财富网为起点,详细阐述了爬取网易财经中各公司资产负债表、利润表和现金流量表的步骤,最终实现对3654家公司的财务数据的全面抓取。
摘要由CSDN通过智能技术生成

首先要找到所有A股上市公司的股票代码,将东方财富网列表中所有的股票的代码(6位数字号)取下来

东方财富网股票代码列表: http://quote.eastmoney.com/stocklist.html

<a target="_blank" href="http://quote.eastmoney.com/sh500001.html">基金金泰(500001)</a>

从网页中找到我们要的信息,保存在字典中,写入"stock_name.txt"文件

# -*- coding: utf-8 -*-
"""
Created on Tue Oct  9 00:03:46 2018

@author: South
"""

import requests
import time
import sys
import json
import os 
def get_file(url, filename):    
    r = requests.get(url)    
    try:
        with open(filename, 'wb') as file:        
            file.write(r.content)
    except:
        print(filename)
        pass

def check_file(filename)
爬取A股上市公司的2022年报,需要先找到能够获取这些报告的数据源。一种比较常见的方式是从上交所和深交所的官方网站获取这些报告。 以下是爬取的大致步骤: 1. 确定要爬取的公司列表,可以从上交所和深交所的官方网站获取。 2. 构建爬取链接,链接的格式为:http://www.sse.com.cn/disclosure/listedinfo/announcement/index_1.htm 或 http://disclosure.szse.cn/m/search0425.jsp。 3. 解析页面内容,获取年报的下载链接。 4. 下载年报并保存到本地。 下面是一个简单的示例代码,供参考: ```python import requests from bs4 import BeautifulSoup # 构建爬取链接 sse_url = 'http://www.sse.com.cn/disclosure/listedinfo/announcement/index_1.htm' szse_url = 'http://disclosure.szse.cn/m/search0425.jsp' # 爬取上交所的公司年报 sse_resp = requests.get(sse_url) sse_soup = BeautifulSoup(sse_resp.text, 'html.parser') sse_table = sse_soup.find('div', {'class': 'sse_list_1'}).find_all('li') for row in sse_table: if '年报' in row.text: report_url = row.find('a')['href'] # 下载年报并保存到本地 report_resp = requests.get(report_url) with open('report.pdf', 'wb') as f: f.write(report_resp.content) # 爬取深交所的公司年报 szse_resp = requests.post(szse_url, data={'searchWZ': '年报', 'sort': 'time', 'pageSize': '30', 'pageNum': '1'}) szse_soup = BeautifulSoup(szse_resp.text, 'html.parser') szse_table = szse_soup.find('table', {'class': 'cls-data-table'}).find_all('tr') for row in szse_table: if '年报' in row.text: report_url = 'http://disclosure.szse.cn' + row.find_all('td')[1].find('a')['href'] # 下载年报并保存到本地 report_resp = requests.get(report_url) with open('report.pdf', 'wb') as f: f.write(report_resp.content) ``` 需要注意的是,这只是一个简单的示例代码,实际爬取的时候还需要处理一些细节,比如反爬虫机制、异常处理等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值