我一直在用一些漂亮的汤刮一些HTML页面,试图提取一些更新的财务数据。我只关心具有逗号的数字,例如100,000或12,000,000,而不是450。目的只是要找到字符串中逗号分隔数字的位置,然后我需要提取它们所在的整个句子。
我将整个抓取片段移到了一个字符串列表中,并希望在该列表中提取所有带有逗号的数字。
file_put_contents("log.txt", $data);
我考虑过以下代码,但不确定是否会提取所有实例。即,列表中可能有多个实例,用逗号分隔。
url = 'https://www.sec.gov/Archives/edgar/data/354950/000035495020000024/hd-2020proxystatement.htm'
r = requests.get(url)
soup = BeautifulSoup(r.content)
text = soup.find_all(text = True)
strings = []
for i in range(len(text)):
text_s = str(proxy_text[i])
strings.append(text)
任何想法都会有很大帮助!谢谢
答案 0 :(得分:2)
您可以使用:
from bs4 import BeautifulSoup
import requests, re
url = 'https://www.sec.gov/Archives/edgar/data/354950/000035495020000024/hd-2020proxystatement.htm'
soup = BeautifulSoup(requests.get(url).text, "html5lib")
for el in soup.find_all(True): # loop all element in page
if re.search(r"(?=\d+,\d+).*", el.text):
print(el.text)
# print("END OF ELEMENT\n") # debug only
答案 1 :(得分:1)
如果您只是想检查一个数字是否包含逗号,并且想提取一个数字,则可以尝试以下操作。
seen=[]
这将追加“文本”集合中包含逗号的所有元素,即使多次重复完全相同的元素也是如此。