我是Python的新手,需要一些帮助。网络不是很有帮助。简而言之,我的网络响应如下:
<html>
<field>123</field>
<field>456</field>
</html>
我要做的是将字段元素中的所有内容都放入一个可以索引的数组中。最终结果如下:
myArray[0] = 123
myArray[1] = 456
依旧......
我最终要做的就是运行一个随机数生成器来随机选择这个数组中的一个元素并检索它的值。
这可能吗?我似乎无法在网上找到一个直接的答案,所以我觉得我可能会问错了。
答案 0 :(得分:6)
如果你正在做这样简单的事情,你可能想看看python中内置的ElementTree模块。你不需要额外安装任何东西,它们都包含在python
中import xml.etree.ElementTree as ET
filename='data.txt'
tree = ET.parse(filename)
root = tree.getroot()
myArray=[]
for x in root.findall('field'):
myArray.append(x.text)
print(myArray)
答案 1 :(得分:1)
我会使用XPath Xpath python来解析值,只需将它们插入列表中,首先声明并清空列表my_list=[]
,然后只追加值my_list.append(parsed_value)
。
答案 2 :(得分:1)
到目前为止,从HTML中提取信息的最简单方法是BeautifulSoup。这是获取所需列表的代码段:
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html_text)
>>> fields = [int(el.text) for el in soup.find_all("field")]
>>> fields
[123, 456]
因为你是Python的新手:
import
来自BeautifulSoup
模块的bs4
课程(您需要安装它 - 请参阅上面的链接)。BeautifulSoup
创建了一个名为soup
的{{1}}个实例。html_text
的列表:
fields
text
转换为el
eger int
for
el
field
元素获得
醇>
答案 3 :(得分:-2)
看看标准模块! http://docs.python.org/2/library/htmlparser.html#examples
如果您只需要问题,请尝试此操作
它用' '
(空格)替换所有标记,str.split
将结果文本拆分为一个或多个空格作为分隔符
import re
def get_data(str_data):
return re.sub(r'<.*?>',' ', str_data).split()
str_data = """<html>
<field>123</field>
<field>456</field>
</html>"""
print get_data(str_data) # prints "['123', '456']"
抱歉我的英文