gpt4 book ai didi

python - Beautiful Soup 选择谷歌图像返回空列表

转载 作者:行者123 更新时间:2023-12-05 01:26:32 29 4
gpt4 key购买 nike

我想从 Google Arts & Culture 检索信息使用 BeautifulSoup。我检查了许多 stackoverflow 帖子( [1][2] , [3] , [4] , [5] ), 仍然无法检索到信息。

我想要每个图 block (图片)的(li)信息,例如 href,但是,find_allselect one 返回空列表或无。

你能帮我得到类“e0WtYb HpzMff PJLMUc”的 anchor 标签的以下 href 值吗?

href="/entity/claude-monet/m01xnj?categoryId=artist"

以下是我尝试过的。

import requests
from bs4 import BeautifulSoup

url = 'https://artsandculture.google.com/category/artist?tab=time&date=1850'
html = requests.get(url)
soup = BeautifulSoup(html.text, 'html.parser')
print(soup.find_all('li', class_='DuHQbc')) # []
print(soup.find_all('a', class_='PJLMUc')) # []
print(soup.find_all('a', class_='e0WtYb HpzMff PJLMUc')) # []
print(soup.select_one('#tab_time > div > div:nth-child(2) > div > ul > li:nth-child(2) > a')) # None
for elem in soup.find_all('a', class_=['e0WtYb', 'HpzMff', 'PJLMUc'], href=True):
print(elem) # others with class 'e0WtYb'

...
# and then something like elem['href']

https://artsandculture.google.com/category/artist?tab=time&date=1850

enter image description here

从 Chrome 复制选择器

#tab_time > div > div:nth-child(2) > div > ul > li:nth-child(2) > a

最佳答案

不幸的是,问题不在于您错误地使用了 BeautifulSoup。您请求的网页似乎缺少内容!我将 html.text 保存到文件中以供检查:

screenshot of the response HTML

为什么会发生这种情况? 因为该网页实际上使用 JavaScript 加载其内容。当您在浏览器中打开网站时,浏览器会执行 JavaScript,这会将所有艺术家方 block 添加到网页中。 (您甚至可能会注意到,当您首次加载网站时,有一小段时间方 block 不存在。)另一方面,requests 不执行 JavaScript——它只是下载网页的内容并将它们保存到一个字符串中。

对此您能做些什么? 不幸的是,这意味着抓取网站将非常困难。在这种情况下,我建议寻找替代信息源或使用网站提供的 API。

关于python - Beautiful Soup 选择谷歌图像返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70235264/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com