我希望能够解析网页并返回任何标题包含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个字符。我该怎么做呢?谢谢!
答案 0 :(得分:5)
您应该使用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
答案 1 :(得分:0)
我知道解析HTML被认为是糟糕的美德,但我喜欢明星前进的方法。
#!/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