2010-07-09 18 views
8

मुझे पायथन का उपयोग करके वेब पेज से मेटा कीवर्ड निकालने की आवश्यकता है। मैं सोच रहा था कि यह urllib या urllib2 का उपयोग करके किया जा सकता है, लेकिन मुझे यकीन नहीं है। क्या किसी के भी पास कोई सुझाव है?वेबपृष्ठ से मेटा कीवर्ड निकालें?

मैं अजगर 2.6 का उपयोग कर रहा Windows XP पर

+0

सुनिश्चित करें कि सामग्री की कैशिंग उपयोग करने के लिए जब भी संभव हो https://developer.yahoo.com/python/python-caching.html – fedmich

उत्तर

10

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... 

... लेकिन मुझे लगता है यह कम पठनीय और अधिक त्रुटियों की संभावना है (लेकिन केवल मानक मॉड्यूल शामिल है और अभी भी एक पर फिट बैठता है लाइन)।

+0

ठीक है, लेकिन कहाँ हो दस्तावेज़ के कीवर्ड। मुझे मेटा डेटा में मौजूद एक सूची के विरुद्ध कीवर्ड की जांच करनी है। –

+0

जैसा कि आप देख सकते हैं कि वे '' टैग की 'सामग्री' विशेषता में हैं, 'नाम' विशेषता 'कीवर्ड' है :) – cji

+0

जब भी संभव हो सामग्री की कैशिंग का उपयोग करना सुनिश्चित करें https://developer.yahoo.com/ पायथन/पायथन-कैशिंग.html – fedmich

0

एक रेगुलर एक्सप्रेशन का उपयोग क्यों नहीं

keywordregex = re.compile('<meta\sname= 
["\']keywords["\']\scontent=["\'](.*?)["\']\s/>') 

keywordlist = keywordregex.findall(html) 
if len(keywordlist) > 0: 
    keywordlist = keywordlist[0] 
    keywordlist = keywordlist.split(", ") 
+0

क्योंकि http://stackoverflow.com/a/1732454/476716 – OrangeDog

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^