gpt4 book ai didi

python - 使用 BeautifulSoup 查找标签并评估它是否符合某些标准

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:37 24 4
gpt4 key购买 nike

我正在编写一个程序来从网站中提取文本并将其写入文本文件。文本文件中的每个条目都应该有 3 个值,用制表符分隔。第一个值硬编码为 XXXX,第二个值应初始化为网站上的第一个项目,第三个值是网站上的下一个项目。我要介绍的逻辑是寻找第一个并将关联的字符串写入文本文件。然后找到下一个并将关联的字符串写入文本文件。 然后,寻找下一个p类。如果是“style4”,则另起一行,如果是另一个“style5”,则将其与第一个 style5 条目一起写入文本文件,但用逗号分隔(或者,程序可以跳过下一个 style5。

我停留在程序的粗体部分。也就是说,让程序寻找下一个 p 类并根据 style4 和 style5 对其进行评估。因为我在查找和评估 p 类标签时遇到问题,所以我选择将我的代码从循环中拉出来,并尝试完成初学者任务的第一次迭代。到目前为止,这是我的代码:

import urllib2
from bs4 import BeautifulSoup
soup = BeautifulSoup(urllib2.urlopen('http://www.kcda.org/KCDA_Awarded_Contracts.htm').read())
next_vendor = soup.find('p', {'class': 'style4'})
print next_vendor
next_commodity = next_vendor.find_next('p', {'class': 'style5'})
print next_commodity
next = next_commodity.find_next('p')
print next

如果有人能提供任何帮助,我将不胜感激!提前致谢!

最佳答案

我不完全确定您期望的输出结果如何。我假设您正在尝试以以下格式获取网页中的数据:

Alphabet \t Vendor \t Category

你可以这样做:

# The basic things
import urllib2
from bs4 import BeautifulSoup
soup = BeautifulSoup(urllib2.urlopen('http://www.kcda.org/KCDA_Awarded_Contracts.htm').read())

获取感兴趣的td:

table = soup.find('table')
data = table.find_all('tr')[-1]
data = data.find_all('td')[1:]

现在,我们将创建一个嵌套的输出字典,其中字母作为键,内部字典作为值。内部字典以供应商名称作为键,以类别信息作为值

output_dict = {}
current_alphabet = ""
current_vendor = ""
for td in data:
for p in td.find_all('p'):
print p.text.strip()
if p.get('class')[0] == 'style6':
current_alphabet = p.text.strip()
vendors = {}
output_dict[current_alphabet] = vendors
continue
if p.get('class')[0] == 'style4':
print "Here"
current_vendor = p.text.strip()
category = []
output_dict[current_alphabet][current_vendor] = category
continue
output_dict[current_alphabet][current_vendor].append(p.text.strip())

这会以以下格式获取 output_dict:

{   ...

u'W': { u'WTI - Weatherproofing Technologies': [u'Roofing'],
u'Wenger Corporation': [u'Musical Instruments and Equipment'],
u'Williams Scotsman, Inc': [u'Modular/Portable Buildings'],
u'Witt Company': [u'Interactive Technology']
},
u'X': { u'Xerox': [u"Copiers & MFD's", u'Printers']
}
}

为简洁起见,跳过前面的部分。现在只需访问该字典并将其写入制表符分隔的文件即可。

希望这对您有所帮助。

关于python - 使用 BeautifulSoup 查找标签并评估它是否符合某些标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22998272/

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