lxml BeautifulSoup (मुझे लगता है कि) की तुलना में तेजी है और ज्यादा बेहतर कार्यक्षमता है उपयोग करने के लिए अपेक्षाकृत आसान रहते हुए:
विशेष रूप से, findAll विधि की जाँच करें। उदाहरण:
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"/>
संपादित करें: एक और उदाहरण।
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"
बीटीडब्ल्यू: XPath जानने योग्य है।
एक और संपादित करें:
वैकल्पिक रूप से, तुम सिर्फ 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...
... लेकिन मुझे लगता है यह कम पठनीय और अधिक त्रुटियों की संभावना है (लेकिन केवल मानक मॉड्यूल शामिल है और अभी भी एक पर फिट बैठता है लाइन)।
सुनिश्चित करें कि सामग्री की कैशिंग उपयोग करने के लिए जब भी संभव हो https://developer.yahoo.com/python/python-caching.html – fedmich