gpt4 book ai didi

python - 在 Python 中清理 HTML 解析

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:00 25 4
gpt4 key购买 nike

下面的代码从 ( http://my.gwu.edu/mod/pws/courses.cfm?campId=1&termId=201501&subjId=ACCY ) 中抓取 tr、align='center' 标签内的 td 元素,用逗号分隔每个元素,并将结果写入文本文件:

import bs4
import requests

response = requests.get('http://my.gwu.edu/mod/pws/courses.cfm?campId=1&termId=201501&subjId=ACCY')

soup = bs4.BeautifulSoup(response.text)
soup.prettify()

acct = open("/Users/it/Desktop/accounting.txt", "w")

for tr in soup.find_all('tr', align='center'):
stack = []
for td in tr.findAll('td'):
stack.append(td.text.strip())

acct.write(", ".join(stack))

但是,在写入文本文件时,有大量空白行(我想消除它们),并且每行都没有以正确的元素开头。

这是我的 .txt 文件与我当前代码的样子:

我希望它看起来像这样: enter image description here

如何更改代码以消除所有空白行并让每行以“OPEN”开头,等等?

最佳答案

问题是 td.text 中有换行符。将其替换为空字符串并在末尾添加换行符。还可以替换制表符以匹配您所需的输出:

for tr in soup.find_all('tr', align='center'):
stack = []
for td in tr.findAll('td'):
stack.append(td.text.replace('\n', '').replace('\t', '').strip())

acct.write(", ".join(stack) + '\n')

产品:

STATUS, CRN, SUBJECT, SECT, COURSE, CREDIT, INSTR., BLDG/RM, DAY/TIME, FROM / TO, 
OPEN, 41552, ACCY 2001, 10, Intro Financial Accounting, 3.00, Rozenbaum, O, DUQUES 251, TR09:35AM - 10:50AM, 01/12/15 - 04/27/15,
OPEN, 40002, ACCY 2001, 11, Intro Financial Accounting, 3.00, Rozenbaum, O, DUQUES 353, TR11:10AM - 12:25PM, 01/12/15 - 04/27/15,
...

关于python - 在 Python 中清理 HTML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26494407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com