gpt4 book ai didi

python - 使用 Beautifulsoup 4 和 Python 2.7 解析 Web 表单

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:23 24 4
gpt4 key购买 nike

我有下面的代码可以解析 HTML 以提取 URL 的表单字段:-

import urllib2
from bs4 import BeautifulSoup

url = "http://www.myurl.com"

soup = BeautifulSoup(urllib2.urlopen("./test.html").read());
for tag in soup.find_all('option'):
print tag

以上返回以下内容:

<option selected="" value="">any</option>
<option value="4">cars</option>
<option value="61">· motorbikes</option>
<option value="5">· boats</option>
<option value="17">planes</option>
<option value="40">· submarines</option>

我想要做的是创建一个字典,例如键是“4”,值是“汽车”。因此,每个选项值都是一个键,描述就是值。

我正在考虑进行一些切片(即从字符 14 切片到 X 以获得数字),但我想知道是否有更有效的方法来做到这一点。另外,我也希望忽略返回的第一行。我只想将“选项值”解析到字典中,而不是“选择的选项”。另外,正如可以看到的,一些值/描述前面带有 "· " - 我也希望忽略这一点。

可以提供任何帮助吗?

最佳答案

这个想法是找到所有具有 value 但不具有 selected 属性的 option 元素;使用字典理解来制作字典:

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup

data = u"""
<select>
<option selected="" value="">any</option>
<option value="4">cars</option>
<option value="61">· motorbikes</option>
<option value="5">· boats</option>
<option value="17">planes</option>
<option value="40">· submarines</option>
</select>
"""

soup = BeautifulSoup(data)
print {option['value']: option.text.lstrip(u"· ")
for option in soup.find_all('option', value=True, selected=False)}

打印:

{
'61': u'motorbikes',
'5': u'boats',
'4': u'cars',
'17': u'planes',
'40': u'submarines'
}

关于python - 使用 Beautifulsoup 4 和 Python 2.7 解析 Web 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439388/

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