尽管使用正则表达式可能很诱人,但我绝对建议您使用Python ^{}库来提供以下帮助:from bs4 import BeautifulSoup
import csv
html = """
Basic EPS (Rs.)57.1848.84Diluted Eps (Rs.)56.4348.26"""# Add the missing surrounding HTML
html = "
".format(html)soup = BeautifulSoup(html, "html.parser")
with open('output.csv', 'wb') as f_output:
csv_output = csv.writer(f_output, delimiter='|')
for tr in soup.find_all('tr'):
csv_output.writerow([td.text for td in tr.find_all('td')])
给你:
^{pr2}$
您的HTML缺少封闭的
标记,因此为了能够正确地处理它,我在处理之前添加了这些标记。在然后可以使用Python的^{}库将每一行单元格作为一个正确分隔的行写入输出CSV文件中。在
这是在python2.x上测试的,如果使用python3.x,则需要使用open('output.csv', 'w', newline='')。在
或者,但不建议:import re
html = """
Basic EPS (Rs.)57.1848.84!!Diluted Eps (Rs.)56.4348.26"""with open('output.csv', 'wb') as f_output:
csv_output = csv.writer(f_output, delimiter='|')
tds = re.findall(r'\
(.*?)\', html)for index in range(0, len(tds), 3):
csv_output.writerow(tds[index:index+3])