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 文件中,我想通过给出“next_page”的文本来提取“/2811457/follow?page=2&gsid=3_5bce9b871484d3af90c89f37”。

我所做的是这样的:

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

它返回无

有什么建议吗?

4

1 回答 1

0

两个小修正。使用find而不是findAll。不要调用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 回答