作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 beautifulsoup 在 Yahoo Finance 上进行一些网页抓取以获取乐趣。目标是获取 html 文件,找到财务数据并将其放入数组中。我已经设法得到这种格式的输出
总收入42,965,39136,483,93920,139,65822,588,85825,067,279
我如何将这些数字分成数百万?例如,我们知道 42,965,39136,483,939 实际上是 42,965,391 和 36,483,939,但我们如何编码呢?我试过使用正则表达式但没有成功。
with open('Nucor Yahoo HTML.html','r') as html:
content = html.read()
soup = BeautifulSoup(content, 'lxml')
tables = soup.find_all(class_ = 'rw-expnded')
for table in tables:
pattern = re.compile(r'\d\d\d?,[0-9]{3},[0-9]{3}')
matches = pattern.finditer(table.text)
for match in matches:
print(match)
print(table.text)
html 文件在这里:https://finance.yahoo.com/quote/NUE/financials?p=NUE
最佳答案
我建议更改用于提取数据的代码并改用它(我觉得这比尝试在字符串中获得正确的截断要安全得多...):
获取数据:
import requests
from bs4 import BeautifulSoup
resp = requests.get("https://finance.yahoo.com/quote/NUE/financials?p=NUE",
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'})
解析数据并选择“总收入”行
soup = BeautifulSoup(resp.text, "html.parser")
total_revenue = [row for row in soup.find("div", {"data-test": "fin-row"}) if "Total Revenue" in row.text]
现在您可以选择列并使用它们
columns = total_revenue[0].find_all("div", {"data-test": "fin-col"})
for col in columns:
print(col.text)
输出:
42,965,391
36,483,939
20,139,658
22,588,858
25,067,279
关于python - 如何从一串数字和逗号中挑选出数百万?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73929885/
我是一名优秀的程序员,十分优秀!