Wie finde ich den Kurstext „New York City, USA“ mit BeautifulSoup
在 Python
?
Ich habe versucht, das Video zum Üben zu kopieren, aber es funktioniert nicht mehr.
Ich habe versucht, etwas in der offiziellen Dokumentation zu finden, aber ohne Erfolg. Oder funktioniert meine get_html_content-Funktion nicht richtig und Google blockiert mich einfach und gibt so ein leeres list
/ None
zurück?
Das ist mein aktueller Code:
from django.shortcuts import render import requests def get_html_content(city): USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" LANGUAGE = "en-US,en;q=0.5" session = requests.Session() session.headers['User-Agent'] = USER_AGENT session.headers['Accept-Language'] = LANGUAGE session.headers['Content-Language'] = LANGUAGE city.replace(" ", "+") html_content = session.get(f"https://www.google.com/search?q=weather+in+{city}").text return html_content def home(request): result = None if 'city' in request.GET: city = request.GET.get('city') html_content = get_html_content(city) from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') soup.find_all('div', attrs={'class': 'wob_loc q8U8x'}) **OR** soup.find_all('div', attrs={'id': 'wob_loc'})
--> alle geben eine leere Liste zurück (= .find
方法返回 None
)
Google 页面的布局可能同时发生了变化,因此要获取有关天气的数据,您必须更改代码。例如: