【问题标题】:Searching for parts of strings using Python and Beautiful soup使用 Python 和 Beautiful soup 搜索部分字符串
【发布时间】:2018-09-29 03:20:25
【问题描述】:

我目前正在使用 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 只有在我有准确的链接文本时才能找到链接,这并不总是可能的。有没有办法通过链接文本的一部分来搜索链接?

【问题讨论】:

标签: python parsing beautifulsoup


【解决方案1】:

正则表达式示例:

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'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 2019-05-12
    • 1970-01-01
    相关资源
    最近更新 更多