python - 如何使用 beautifoulsoup 从特定 URL 下载数据并将结果保存为 excel 文件?
问题描述
我需要从这个网站下载标准普尔 500 指数公司的净收入https://www.macrotrends.net/stocks/charts/MMM/3m/income-statement
我按照在线指南(这个https://towardsdatascience.com/web-scraping-for-accounting-analysis-using-python-part-1-b5fc016a1c9a )编写了这部分代码,但我不知道如何总结一下,更具体地说,如何将提取的净收入下载到 excel 文件中。
import requests
import urllib.request
import time
from bs4 import BeautifulSoup
url = 'https://www.macrotrends.net/stocks/charts/MMM/3m/income-statement'
response = requests.get(url)
response
soup = BeautifulSoup(response.text, 'html.parser')
income_statement = soup.findAll('a')[19]
link = income_statement['href']
download_url = 'https://www.macrotrends.net/stocks/charts/MMM/3m/income-statement/'+ link
任何建议将不胜感激,谢谢!
解决方案
我认为完成这项任务的正确方法是使用一些股票市场 API,而不是使用 BS4 进行网络抓取。我建议你看看下面的文章,它还包括一些实际的例子: https ://towardsdatascience.com/best-5-free-stock-market-apis-in-2019-ad91dddec984
编辑:
如果你决定坚持使用你提到的这个确切的 URL 的计划,我认为你应该尝试使用pandas
,尝试这样的事情:
import pandas as pd
data = pd.read_html('https://www.macrotrends.net/stocks/charts/MMM/3m/income-statement',skiprows=1)
由于表包含一些非 ascii 字符,因此您必须稍微使用编码
推荐阅读
- javascript - 在 Winston 日志框架中实现 Promise
- node.js - 如何在猫鼬中包含 $count 以达到以下结果?
- jquery - 表格大时面板主体不调整大小?
- mysql - MySQL中的类应该如何没有错误?
- pypi - 无法使用 upip 在 esp32 上安装 uasyncio 包
- css - 动态 CSS 加载
- powershell - 使用 Powershell 解析顺序日志文件
- html - 在“编辑”按钮上单击我在 Angular 6 应用程序中获得 DOB 字段的重复文本框
- api - Xero OAuth2.0 刷新令牌中的无效授权问题
- amazon-web-services - 将 Amazon S3 用作受限数据库