通过 BeautifulSoup 从 HTML 表制作字典?

我从 eBay 上抓取了这个表格,

基本上,输出应该是这样的

scraped_table = {'Condition': 'New', 'Brand': 'MyBrand', 'MPN': 'Does not apply', 'UPC': 'Does not apply'}

但是,该表可能具有不同的值(例如,可能并不总是存在 UPC 或 MPN 值集,并且可能存在更多值)。我不知道如何才能刮掉这张桌子。

我可以通过查找“table”元素来选择表,但如何循环遍历这些值并将其放入字典中?


慕姐4208626
浏览 117回答 1
1回答

慕斯王

如果表的结构是<td class="attrLabels"> ...Attribute... </td><td> ...Attribute value... </td>,您可以执行以下操作(txt是您的 HTML 片段):from pprint import pprintfrom bs4 import BeautifulSoupsoup = BeautifulSoup(txt, 'html.parser')out = {}for attr, txt in zip(soup.select('td.attrLabels'), soup.select('td.attrLabels + td')):&nbsp; &nbsp; out[attr.get_text(strip=True)] = txt.get_text(strip=True).split(':')[0]# pretty print to screen:pprint(out)印刷:{'Brand:': 'MyBrand',&nbsp;'Condition:': 'New',&nbsp;'MPN:': 'Does Not Apply',&nbsp;'UPC:': 'Does not apply'}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python