我是一名 Python 新手,目前面临着抓取代码的问题。 该脚本成功访问网站并避免使用 cookie。 然而,遗憾的是它没有复制整个 HTML 代码。
这是网站上 HTML 代码的完整部分:
<div class="index__factor__Mo6xW p-base-regular">
<h4 class="index__title__Rq0Po">Arbeitsatmosphäre</h4>
<div class="index__block__7hodp index__scoreBlock__KZCPC">
<span class="index__stars__nfK6S index__medium__CyRQn index__stars__bpFJl" data- fillcolor="butterscotch" data-score="5"></span>
</div>
<p class="index__plainText__JgbHE">Dynamisch</p>
</div>
这是提取的代码:
<div class="index__factor__Mo6xW p-base-regular">
<h4 class="index__title__Rq0Po">Work Atmosphere</h4>
<p class="index__plainText__JgbHE">Dynamic</p>
</div>
这是我已经尝试提取的代码:
url = "https://www.kununu.com/de/adidas/kommentare"
driver = webdriver.Chrome()
driver.get(url)
[...]
show_more_reviews(driver, 5) #Code clicks on "Read more Reviews"
make_mini_scores_visible(driver) #Code shows al "Mini Scores" like "Arbeitsatmosphäre"
all_reviews = driver.execute_script("return document.documentElement.innerHTML;")
soup = BeautifulSoup(html, 'html.parser')
提取整个代码非常重要,因为我需要每一条信息。
提前谢谢您!
从 selenium 导入 webdriver 从 selenium.webdriver.chrome.service 导入服务 从 selenium.webdriver.chrome.options 导入选项 从 bs4 导入 BeautifulSoup
其余代码保持不变
soup = BeautifulSoup(html, 'html.parser')
work_atmosphere_divs = soup.find_all('div', class_='index__factor__Mo6xW p-base-regular')
for div in work_atmosphere_divs:
title = div.find('h4', class_='index__title__Rq0Po').text.strip()
atmosphere = div.find('p', class_='index__plainText__JgbHE').text.strip()
print(f"Title: {title}, Atmosphere: {atmosphere}")
driver.quit()
你可以试试这个,这可能会对你有帮助
您在页面上看到的数据以 Json 形式存储在
<script>
元素内,因此您可以使用它:
import json
import requests
from bs4 import BeautifulSoup
url = "https://www.kununu.com/de/adidas/kommentare"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
data = json.loads(soup.select_one("#__NEXT_DATA__").text)
# print(json.dumps(data, indent=4))
for r in data["props"]["initialReduxState"]["reviews"]["reviews"]:
print(r["title"], r["score"])
for rr in r["ratings"]:
print(rr["id"], rr["score"], rr["text"])
print()
打印:
...
Noch weit weg von einer Verbesserung ///. Nur Show bei Adidas. 2.5
atmosphere 3 Viel Druck. Performance System heiß MyBest. Die Vorgesetzten bekommen von der Personalabteilung und den VPs gesagt wie sie zu bewerten haben und niemand traut sich dagegen vorzugehen.<br/>Mitarbeitende werden nicht wertgeschätzt.
image 4 Noch ok, aber überbewertet.
career 2 Onlinekurse ohne Strategie
salary 2 Nicht transparent und auch bei Jobangeboten keine Gehaltsinformationen.<br/>Sozialleistungen nur Standard.<br/>VWL 40.- Pro Monat
oldColleagues 1 Erfahrene Mitarbeiterende verschwinden still und leise....
leadership 1 Kaum Kompetenzen in der Mitarbeiterführung. Das zeigen auch die negativen Rückmeldungen der sich wiederholenden Mitarbeiterbefragungen. Fragt man nach dem Ergebnis des NPS.
equality 3 Noch immer keine offenen Gehaltsinformationen nach Stellen und Positionen.<br/>Nasenfaktor zählt nur.
workLife 3 None
environment 3 None
teamwork 3 None
workConditions 3 None
communication 2 None
tasks 3 None