0
<form action="/2811457/follow?gsid=3_5bce9b871484d3af90c89f37" method="post">
<div>
<a href="/2811457/follow?page=2&amp;gsid=3_5bce9b871484d3af90c89f37">next_page</a>
&nbsp;<input name="mp" type="hidden" value="3" />
<input type="text" name="page" size="2" style='-wap-input-format: "*N"' />
<input type="submit" value="jump" />&nbsp;1/3
</div>
</form>

私は STO で検索を行っています。多くの人がタグ間のテキストを抽出する方法を尋ねます。定義されたテキストを指定して href を抽出する方法を知りたいです。

上記の html ファイルで、「/2811457/follow?page=2&gsid=3_5bce9b871484d3af90c89f37」を「next_page」というテキストを指定して抽出します。

私がやったことは次のようなものです:

  t = soup1.findAll(text=re.compile(r'next_page'))
  s = t.parent
  print s.nextSibling['href']

None を返します

なにか提案を?

4

1 に答える 1

0

2つのマイナーな修正。findAllの代わりにfindを使用します。nextSiblingを呼び出す代わりに、 getメソッドを使用してhref属性を検索します。

>>> from BeautifulSoup import BeautifulSoup
>>> import re
>>> page = '''\
<form action="/2811457/follow?gsid=3_5bce9b871484d3af90c89f37" method="post">
<div>
<a href="/2811457/follow?page=2&amp;gsid=3_5bce9b871484d3af90c89f37">next_page</a>
&nbsp;<input name="mp" type="hidden" value="3" />
<input type="text" name="page" size="2" style='-wap-input-format: "*N"' />
<input type="submit" value="jump" />&nbsp;1/3
</div>
</form>
'''
>>> soup = BeautifulSoup(page)
>>> soup.find(text=re.compile(r'next_page')).parent.get('href')
u'/2811457/follow?page=2&gsid=3_5bce9b871484d3af90c89f37'
于 2012-06-17T07:31:30.140 に答える