Beautifulsoup部分提取字符串

时间:2016-05-19 23:12:13

标签: python beautifulsoup

我是Beautifulsoup 4的新手,发现它非常方便!但是,当我需要拆分字符串时,我遇到了问题:

这里有一个例子:

我有一个链接

 <a href="http://nihao-wobuhao?%93%23%24%12&sort=102">NIHAO</a>

我得到了soap.findChildren('a')这一行,但如果我只需要'sort = 102'那么该怎么办?

我尝试使用soap.find_all(re.compile(^sort=.*?))但它不起作用,任何人都可以帮助我吗?提前谢谢!

2 个答案:

答案 0 :(得分:1)

urlparse module会挑选出一些网址。您可以使用它来获取您正在查找的查询参数。

答案 1 :(得分:0)

详细说明@ Don的答案:

  • 找到a元素,例如,文字
  • 使用类似字典的href属性
  • 获取Tag属性值
  • 使用urlparse.parse_qs()获取网址查询参数

工作样本:

>>> from bs4 import BeautifulSoup
>>> from urlparse import urlparse, parse_qs
>>>
>>> html = '<a href="http://nihao-wobuhao?%93%23%24%12&sort=102">NIHAO</a>'
>>> parse_qs(urlparse(soup.find("a", text="NIHAO")['href']).query)['sort'][0]
u'102'

请注意,在Python 3中,您需要将urlparse导入更改为:

>>> from urllib.parse import urlparse, parse_qs