首页 > 解决方案 > 在网站 BeautifulSoup python 上搜索文本

问题描述

我试图通过 BeautifulSoup 在网站上找到一个词,但我似乎无法理解。到目前为止,这是我的代码:

import requests
from bs4 import BeautifulSoup


session = requests.Session()
s = session.get('https://www.doctolib.de/institut/berlin/ciz-berlin-berlin?pid=practice-158431')

soup = BeautifulSoup(s.text, 'html.parser')
tags = soup.find_all(class_="dl-text dl-text-body dl-text-regular dl-text-s dl-text-color-inherit")

for i in tags:
    print(i.string)

有关特定 HTML 元素的图片,请参见下文。我正在尝试搜索并找到“Keine Verfügbarkeiten”任何可以帮助我的人?因为我使用的代码没有返回任何内容。

疫苗检查

标签: pythonweb-scrapingbeautifulsoup

解决方案


尽管您在该站点中查找的内容是动态生成的,但它仍然可以在页面源代码 ( ctrl + U) 中的某些脚本标记中使用。以下是您可以requests结合使用 modulere和来解析相同内容的方法之一json

import re
import json
import requests

url = "https://www.doctolib.de/institut/berlin/ciz-berlin-berlin?pid=practice-158431"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36',
}
res = requests.get(url,headers=headers)
script = re.search(r"window\.translation_keys[^{]+(.*?});",res.text).group(1)
items = json.loads(script)
print(items['root']['common']['availabilities']['no_availabilities_vaccination'])

输出:

Keine Verfügbarkeiten

推荐阅读