python - 如何抓取谷歌搜索结果的一部分
问题描述
我想从谷歌提供的 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”时,我得到 []。
解决方案
我相信您需要添加 amd.response 或 amd.text
print(amd.response)
print(amd.text)
推荐阅读
- c# - 只有处于完成状态的任务才能被释放
- java - MapStruct - 创建 Mapper 2 对象(简单和复杂对象)
- python - 熊猫“to_datetime”不接受系列
- python - Py3我 print("text", variable, "text") 它输出正确,但是当我设置为变量而不是 print 时,它会在字符串中添加多个(',')
- amazon-web-services - AWS ssm 中的变量分配不起作用
- python - [已解决]无法用 replace() 替换字符串。谁能告诉我代码中的错误?
- javascript - 试图找出表值计算器的问题
- amazon-web-services - AWS Lambda 上的 SkiaSharp
- python - MongoDB:查找数量最多的文档
- python-3.x - 我无法在 Google Colab 中导入我的自定义模块