BeautifulSoup4查找所有带有属性的标签,以Python中的字符串开头

时间:2014-06-25 18:37:21

标签: python html parsing

如何使用beautifulsoup查找具有以某些字符串开头的属性的所有标记?

以下似乎不起作用:(

soup.find_all('a', {'href':re.compile('^com')})

1 个答案:

答案 0 :(得分:1)

它似乎按预期工作......我认为它在你的情况下不起作用是因为你的例子是错误的。由于href代码通常不以com开头,因此通常以httphttps

开头

针对您自己的问题运行示例,它按预期工作:

import requests
from bs4 import BeautifulSoup
import re

html = requests.get("http://stackoverflow.com/questions/24416106/beautifulsoup4-find-all-tags-with-attribute-begins-with-a-string-in-python")
soup = BeautifulSoup(html.text)

http = soup.find('a', {'href':re.compile('^http')})
print http

产地:

<a data-gps-track="site_switcher.click({ item_type:6 })" href="http://chat.stackoverflow.com">chat</a>

如果您将^http替换为^https,您将获得一个a标记,其中hrefhttps开头

注意:为简单起见,我使用了find()方法