<form action="/2811457/follow?gsid=3_5bce9b871484d3af90c89f37" method="post">
<div>
<a href="/2811457/follow?page=2&gsid=3_5bce9b871484d3af90c89f37">next_page</a>
<input name="mp" type="hidden" value="3" />
<input type="text" name="page" size="2" style='-wap-input-format: "*N"' />
<input type="submit" value="jump" /> 1/3
</div>
</form>
我搜索过STO,很多人都会问如何在标签之间提取文本 我想知道如何通过给出一个定义的文本来提取href。
在上面的html文件中,我想通过提供“next_page”文本来提取“/ 2811457 / follow?page = 2&amp; gsid = 3_5bce9b871484d3af90c89f37”。
我所做的就像:
t = soup1.findAll(text=re.compile(r'next_page'))
s = t.parent
print s.nextSibling['href']
返回无
有什么建议吗?
答案 0 :(得分:0)
两次小修正。使用查找而不是 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&gsid=3_5bce9b871484d3af90c89f37">next_page</a>
<input name="mp" type="hidden" value="3" />
<input type="text" name="page" size="2" style='-wap-input-format: "*N"' />
<input type="submit" value="jump" /> 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'