2016-05-19 92 views
1

我是新來的Beautifulsoup 4,發現它真的很方便!但是,我得到了這個問題,當我需要拆分字符串:Beautifulsoup提取字符串部分

這裏有一個例子:

我,如果我一個鏈接,是

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

我得到符合soap.findChildren('a'),但什麼只需要'sort = 102'部分?

我試圖使用soap.find_all(re.compile(^sort=.*?))但它不起作用,任何人都可以幫助我嗎?提前致謝!

+0

提取'href'屬性,然後使用'urlparse'模塊解析它。 –

回答

0

制定一項點點@唐的回答是:

  • 通過定位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 
1

urlparse module將挑選出一段URL。你可以使用它來獲得你正在查找的查詢參數。