获取中国A股相关数据(结构化数据)

本文演示了如何使用Python的requests库获取网页数据,然后用BeautifulSoup解析HTML,提取股票报告的表格信息。解析后的数据存储为CSV文件,涉及网页状态码检查、表格标题和数据的抓取以及多页数据的遍历处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

步骤:

  1. 获取数据

  2. 解析数据

  3. 获取数据

  • 导入requests库
  • 参数:url,params,header
  • 发起请求,requests.get(url,params,headers)
  • 查看状态码,r.status_code
  • 查看内容 r.text
import requests
url="https://s.askci.com/stock/a/0-0"
para={
    "reportTime" : "2023-03-31",
    "pageNum" : 1
}
header={
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
}
r = requests.get(url,params=para,headers=header)
r.status_code
200
r.text
  1. 解析数据
  • 导入BeautifulSoup库
  • 将页面封装为文档树
  • 解析数据所在的表格
  • 解析table标题
  • 解析table数据
    soup.find()/findAll(),列表推导式
from bs4 import BeautifulSoup

(1)将页面封装为文档树

soup = BeautifulSoup(r.text,"lxml")
soup

(2)解析数据所在的表格

table = soup.find(id="myTable04")
table

(3)解析表格的标题

ths = table.find_all("th")
ths
title = [th.text for th in ths]
title

(4)解析表格的数据

tbody = table.find("tbody")
trs = tbody.find_all("tr")
data = []
for tr in trs:
    tds = tr.find_all("td")
    tdsv = [td.text for td in tds]
    data.append(tdsv)
data
tableData=[]
for page in range(1,252):
    html = getHtml(page)
    soup = BeautifulSoup(html,"lxml")
    if page==1:
        title = parseTitle(soup)
        tableData.append(title)
    pageData = parseData(soup)
    tableData.extend(pageData)
tableData[:1]
import csv
def saveCSV(data):
    with open("mdata/stockData.csv","w",newline="") as f:
        writer = csv.writer(f)
        writer.writerows(data)
saveCSV(tableData)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值