1

Web ページを解析して、正確に 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>

この例では、タイトルにちょうど 4 文字が含まれているため、'dogs' と 'eels' を含む配列を返したいと思います。どうすればこれを行うことができますか?ありがとう!

4

2 に答える 2

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
于 2012-12-17T18:02:31.040 に答える
0

re を使用して 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
于 2012-12-17T18:38:29.460 に答える