用逗号查找所有数字的位置

时间:2020-04-30 22:04:45

标签: python string beautifulsoup numbers scrape

我一直在用一些漂亮的汤刮一些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)

任何想法都会有很大帮助!谢谢

2 个答案:

答案 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=[]

这将追加“文本”集合中包含逗号的所有元素,即使多次重复完全相同的元素也是如此。