美丽的汤不够高效,所以我试图用纯粹的lxml。然而,lxml.html.fromstring是越野车(it suddenly eats 100% RAM after some time),所以我需要做一些其他方式(而不是fromstring)。从HTML获取OpenGraph元标记的最快方法?
我可以使用API中的其他模块吗?我无法弄清楚,并且在互联网上出现了一些令人惊讶的例子。
这就是我现在做的事情,但正如我所说,我需要更换fromstring:非常感谢
mySearchTree = fromstring(data)
metas = {}
n = -1
for a in mySearchTree.cssselect('meta'):
n += 1
metas[n] = {}
for b in a.items():
metas[n][b[0]] = b[1]
y = 0
tag = []
for m in metas:
if 'property' in metas[m] and 'content' in metas[m]:
if 'og:' in metas[m]['property']:
y += 1
tag.append({metas[m]['property'] : metas[m]['content']})
for x in tag:
for y in x:
#print '%s ==> %s' % (y, x[y])
self.rj[y] = x[y]
任何指针!
2013-02-22
knutole
+1
看看'etree.iterparse'。如果使用正确,它运作良好。我在像20MB的RAM中分析了一个10GB的XML文件。 –
2013-02-23 00:27:46
+0
它也适用于HTML吗? –
2013-02-23 21:14:51
+0
不,它没有。 –
2013-04-19 07:27:17