lxml là nhanh hơn so với BeautifulSoup (tôi nghĩ) và có chức năng tốt hơn, trong khi vẫn tương đối dễ sử dụng. Ví dụ:
52> from urllib import urlopen
53> from lxml import etree
54> f = urlopen("http://www.google.com").read()
55> tree = etree.HTML(f)
61> m = tree.xpath("//meta")
62> for i in m:
..> print etree.tostring(i)
..>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"/>
Chỉnh sửa: ví dụ khác.
75> f = urlopen("http://www.w3schools.com/XPath/xpath_syntax.asp").read()
76> tree = etree.HTML(f)
85> tree.xpath("//meta[@name='Keywords']")[0].get("content")
85> "xml,tutorial,html,dhtml,css,xsl,xhtml,javascript,asp,ado,vbscript,dom,sql,colors,soap,php,authoring,programming,training,learning,b
eginner's guide,primer,lessons,school,howto,reference,examples,samples,source code,tags,demos,tips,links,FAQ,tag list,forms,frames,color table,w3c,cascading
style sheets,active server pages,dynamic html,internet,database,development,Web building,Webmaster,html guide"
BTW: XPath đáng để biết.
Một biên tập:
Ngoài ra, bạn chỉ có thể sử dụng regexp:
87> f = urlopen("http://www.w3schools.com/XPath/xpath_syntax.asp").read()
88> import re
101> re.search("<meta name=\"Keywords\".*?content=\"([^\"]*)\"", f).group(1)
101>"xml,tutorial,html,dhtml,css,xsl,xhtml,javascript,asp,ado,vbscript,dom,sql, ...etc...
... nhưng tôi thấy nó ít có thể đọc được và báo lỗi hơn dễ bị (nhưng chỉ liên quan đến mô-đun tiêu chuẩn và vẫn phù hợp trên một hàng).
Hãy chắc chắn để sử dụng bộ nhớ đệm của các nội dung bất cứ khi nào có thể https://developer.yahoo.com/python/python-caching.html – fedmich