BeautifulSoup找不到所有的div标签

马可·里博拉(Marco Ribolla)

我已经开始一个私人项目:在Visual Studio Code(1.41.0)中使用Python和BeautifulSoup进行网络抓取。

我能够抓取另一个结构与我的“问题站点”相同的站点。但是现在我遇到了,BeautifulSoup找不到所有div标签(每个站点应该有20个,而我只发现3个)。我已经告知自己有关堆栈溢出的信息,但是没有找到解决方案(或者显然不理解)。

网站:https//www.comparis.ch/gesundheit/arzt/pathologie

我感兴趣的html结构如下所示:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

<div class="css-15dj4ut"></div>那里得到了所有,但从那里<div class="css-fh99y9 excbu0j0">...</div>没有得到<div class="css-roynbj excbu0j0"></div>你知道为什么吗?

遍历每个URL到达每个站点。

for i in range(0, endIndex):
try:
    if i == 0:
        urls.append(basicUrl)
        page = urllib.request.urlopen(urls[i])
        soup = BeautifulSoup(page, 'html.parser')

        getSurgeonName(soup)

    else:
        urls.append(basicUrl + urlAddon + str(i + 1))
        page = urllib.request.urlopen(urls[i])
        soup = BeautifulSoup(page, 'html.parser')

        getSurgeonName(soup)

except:
    print("An URL request error occured.")

功能版本1:

def getSurgeonName(soup):
    # gets just first 3 surgeons of site
    docName = re.compile('css-15dj4ut')
    docNameTags = soup.find_all('div', attrs={'class': docName})
    for a in docNameTags:
            docNameList.append(a.getText())

功能版本2:

def getSurgeonName(soup):

    parentClass = re.compile('css-fh99y9 excbu0j0')
    parentItems = soup.find_all('div', attrs={'class': parentClass})

    for parent in parentItems:
           children = parent.findChildren('div', {"class": "css-15dj4ut"}) 
           docNameList.append(children[0].getText())

    parentClass = re.compile('css-roynbj excbu0j0')
    parentItems = soup.find_all('div', attrs={'class': parentClass})

    for parent in parentItems:
           children = parent.findChildren('div', {'class': 'css-15dj4ut'}) 
           docNameList.append(children[0].getText())
αԋɱҽԃαμєяιcαη

实际上,您所需的desired数据是通过JavaScript页面加载时动态加载的,因此requests程序包将无法JavaScript即时呈现但我已经能够找到script它捧在数据标签stringJSON dict,然后装成JSON

在这里您可以解析任何内容:)。

import requests
from bs4 import BeautifulSoup
import json

r = requests.get("https://www.comparis.ch/gesundheit/arzt/pathologie")
soup = BeautifulSoup(r.content, 'html.parser')
script = soup.find("script", {'id': '__NEXT_DATA__'}).text

data = json.loads(script)

print(data.keys())  # JSON Dict

dumper = json.dumps(data, indent=4)

print(dumper)  # to see it in human readble format

就像是:

for item in data['props']['pageProps']['doctorResults']['doctorModels']:
    print(item['name'])

输出:

Mohamed Abdou
Dr. med. Heiner Adams
Dr. med. Franziska Aebersold
Prof. Dr. med. Adriano Aguzzi
Dr. med. Maria Ammann
Prosper Anani
Dr. med. Max Arnaboldi
Dr. med. Walter Arnold
Dr. med. Irena Baltisser
Dr. med. Fridolin Bannwart
Dr. med. Yara Banz
Dr. med. André Barghorn
Dr. Jessica Barizzi
Prof. Dr. med. Daniel Baumhoer
Audrey Baur Chaubert
Dr. med. Christian Georg Bayerl
Dr. med. Marc Beer
Dr. med. Sabina Berezowska
Dr. med. Steffen Bergelt
Dr. med. Barbara Elisabeth Berger-Denzler

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

BeautifulSoup找不到标签

来自分类Dev

Beautifulsoup找不到标签

来自分类Dev

BeautifulSoup 找不到标签

来自分类Dev

Beautifulsoup:找不到标签

来自分类Dev

Python Regex 为什么找不到所有的双字?

来自分类Dev

BeautifulSoup:为什么找不到所有 iframe?

来自分类Dev

找不到所有的无线网络,只有我的邻居

来自分类Dev

Beautifulsoup找不到按文字显示的标签

来自分类Dev

美丽的汤找到所有找不到div

来自分类Dev

ld找不到现有的库

来自分类Dev

找不到现有的视图模板

来自分类Dev

Windows 10找不到我所有的应用程序

来自分类Dev

编程中的Pulse Audio找不到我所有的设备

来自分类Dev

networkx库的dfs_edges函数找不到所有的边

来自分类Dev

使用BeautifulSoup找不到'div'的内容

来自分类Dev

nasm汇编:1004通过后找不到所有标签的有效值

来自分类Dev

espn表beautifulsoup,找不到正确的标签,其中的图片

来自分类Dev

BeautifulSoup 找不到包含特定文本的 HTML 标签

来自分类Dev

BeautifulSoup 没有找到所有的“th”

来自分类Dev

Workbook.Match找不到应有的价值

来自分类Dev

在数组中找不到现有的键

来自分类Dev

mpd找不到现有的音乐文件

来自分类Dev

BeautifulSoup并未找到所有标签

来自分类Dev

BeautifulSoup抓取未找到所有'a'标签

来自分类Dev

如何在Python中使用Beautifulsoup在div中查找所有锚标签

来自分类Dev

找不到网站中的所有表格

来自分类Dev

MKLocalSearch找不到附近的所有餐厅

来自分类Dev

Python docx找不到所有部分

来自分类Dev

Java binarySearch找不到所有字符