首页 > 解决方案 > 如何抓取谷歌搜索结果的一部分

问题描述

我想从谷歌提供的 AMD 股票中抓取信息。我已经能够抓取整个网页,但是一旦我尝试获取特定的div,我就找不到任何东西并且控制台返回 []。抓取整个页面时,我也找不到这些类,搜索后我发现这可能被 Javascript 隐藏并且可以通过 Selenium 以某种方式访问​​?我尝试使用 Selenium Webdriver,但这让我无处可去。

这是我到目前为止所拥有的:

import requests
from bs4 import BeautifulSoup
import urllib3
from selenium import webdriver

requests.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36"}


url = "https://www.google.com/search?q=amd+stock&oq=amd+stock&aqs=chrome..69i57j35i39j0l5j69i60.1017j0j7&sourceid=chrome&ie=UTF-8"
source_code = requests.get(url, requests.headers)
soup = BeautifulSoup(source_code.text, "html.parser")
amd = soup.find_all('div', attrs = {'class': 'aviV4d'})
print(amd)

打印“soup”时,我得到整个页面,但打印“amd”时,我得到 []。

标签: pythongoogle-chromeweb-scrapingbeautifulsouppycharm

解决方案


我相信您需要添加 amd.response 或 amd.text

print(amd.response)
print(amd.text)

推荐阅读