2
美麗的湯不夠高效,所以我試圖用純粹的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]
任何指針!
看看'etree.iterparse'。如果使用正確,它運作良好。我在像20MB的RAM中分析了一個10GB的XML文件。 – Blender 2013-02-23 00:27:46
它也適用於HTML嗎? – knutole 2013-02-23 21:14:51
不,它沒有。 – 2013-04-19 07:27:17