我使用lxml.html
來刮取html文檔;有一件事我可以在BeautifulSoup
中做,但不能處理lxml.htm。這是它:使用lxml.html與BeautifulSoup定位元素
from BeautifulSoup import BeautifulSoup
import re
doc = ['<html>',
'<h2> some text </h2>',
'<p> some more text </p>',
'<table> <tr> <td> A table</td> </tr> </table>',
'<h2> some special text </h2>',
'<p> some more text </p>',
'<table> <tr> <td> The table I want </td> </tr> </table>',
'</html>']
soup = BeautifulSoup(''.join(doc))
print soup.find(text=re.compile("special")).findNext('table')
我試過這與cssselect
,但沒有成功。有關如何使用lxml.html
中的方法找到此問題的任何想法?
非常感謝, d
爲什麼你需要的常量字符串'了're.compile' 「特殊」'? – 2011-04-23 14:58:28
另外,我個人總是發現'BeautifulSoup'比'lxml'更方便HTML「抓取」 – 2011-04-23 15:00:11
Hi @Eli,感謝您的評論。我也不確定爲什麼我需要're.compile',但事實是'print soup.find(text =「special」)。findNext('table')'不起作用。此外,似乎'BeautifulSoup'不再被維護,請參閱http://tiny.cc/d1lir。 – djas 2011-04-23 15:45:00