我目前正在使用Beautiful Soup尝试在网站上找到链接文本然后拉链接。我使用以下代码:
source = requests.get('http://www.website').text
page = BeautifulSoup(source, 'lxml')
for article in page.find_all('article'):
for a in article.find_all('a', string=['something']) and article.find_all('a', string=['something']):
link = a['href']
print(link)
问题是,如果我有确切的链接文本,Beautiful Soup只能找到链接,但这并不总是可行的。有没有办法可以通过链接文本的一部分搜索链接?
答案 0 :(得分:0)
正则表达式示例:
import re
r = re.compile('something|somethingelse')
for a in article.find_all('a', string=r):
print(a['href'])
来自你的版本:
from itertools import chain
c = chain(article.find_all('a', string=['something']),
article.find_all('a', string=['somethingelse']))
for a in c:
print(a['href'])
功能示例:
def any_string(s):
ok = ['something', 'somethingelse']
return (s in ok)
for a in article.find_all('a', string=any_string):
print(a['href'])