Python解析网页的“title”

2024-06-16 08:50:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够解析一个网页并返回标题中包含4个字母的任何元素。在

例如:

<li><a href="test.com/dogs" title="dogs"></a></li>
<li><a href="test.com/cat" title="cat"></a></li>
<li><a href="test.com/horse" title="horse"></a></li>
<li><a href="test.com/eels" title="eels"></a></li>

在本例中,我希望返回一个包含“dogs”和“eels”的数组,因为标题正好包含4个字符。我该怎么做呢?谢谢!在


Tags: testcom元素网页标题title字母li
2条回答

您应该使用BeautifulSoup。在

使用它,您可以执行以下操作:

import urllib2
from BeautifulSoup import BeautifulSoup

url = # put url here
page = urllib2.urlopen(url)
text = page.read()
page.close()
soup = BeautifulSoup(text)

L = []
for x in soup.findAll('li'):
    link = x.a
    if link.has_key('title'):
        if len(link['title']) == 4:
            L.append(link['title'])
print L

我知道解析html有被认为是不好的优点,但我确实喜欢staright forward方法。在

 #!/usr/bin/env python
 import re
 res_array = []
 for line in open('inputdata','r'):
     res = re.findall('title=\"[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]\"',line)
     if res :
         res_array.append(res[0].split('"')[1]) 
 print res_array

相关问题 更多 >