python - 谷歌搜索结果页面上的网页抓取值。Python,BeautifulSoup,请求
问题描述
我是 Python 新手,正在尝试制作一系列程序来向我的手机发送股票市场指数的表现。我有一些功能有限的程序,我相信如果可以从谷歌抓取数据,它们会得到改进,到目前为止我还无法做到这一点。我试图提取的值每次都在结果页面的顶部,几乎在某种表格中。在底部,我附有一个片段,上面附有我要抓取的值。
这是我目前用于网络抓取部分的代码部分。我正在使用美丽的汤和请求。
import bs4
import requests
res = requests.get('https://www.google.com/search?safe=active&sxsrf=ALeKk00d7WrRTMvmhypG20E5MOEWpRwKlw%3A1601591747498&ei=w1l2X52DHoPatAXElILQDg&q=nasdaq+composite&oq=nasd&gs_lcp=CgZwc3ktYWIQAxgAMgwIIxAnEJ0CEEYQ-gEyBAgjECcyBAgjECcyCggAELEDEIMBEEMyCggAELEDEIMBEEMyCAgAELEDEIMBMgcIABCxAxBDMgcIABCxAxBDMgcIABCxAxBDMgoIABCxAxCDARBDOgQIABBHOgUIABCxAzoHCCMQ6gIQJzoHCCMQJxCdAjoECAAQQ1DszQ5Y9tkOYPjkDmgBcAJ4BYABqQOIAZ4NkgEJMS43LjEuMC4xmAEAoAEBqgEHZ3dzLXdperABCsgBCMABAQ&sclient=psy-ab')
type(res)
soup = bs4.BeautifulSoup(res.text,'lxml')
type(soup)
Current_Level = soup.find(class_='IsqQVc_NprOob_XcVN5d')
print (Current_Level)
如果您在谷歌上搜索“纳斯达克综合”,该链接将指向页面。我使用的类soup.find()
与您右键单击时的值对齐 - 检查网页上的值。
对所有解决方案开放以获得此价值。感谢您的所有帮助,非常感谢!
解决方案
这是您如何获得价值的方法。
from bs4 import BeautifulSoup as soup
import requests
url_to_scrape = "https://www.google.com/search?q=nasdaq+composite&oq=nasdaq+composite&aqs=chrome.0.0l8.5126j1j4&sourceid=chrome&ie=UTF-8"
try:
client_page = requests.get(url_to_scrape)
except:
print("Request aborted due to unknown reason!")
page_html = client_page.text
client_page.close()
page_soup = soup(page_html,"html.parser")
nasdaqValue = page_soup.findAll("div",{"class":"BNeawe iBp4i AP7Wnd"})
print(nasdaqValue[0].text)
推荐阅读
- visual-studio-code - VS Code - pylint 没有运行
- python - 使用 os.popen 复制文件后读取文件的问题 - Python
- javascript - 是否有 javascript“任何值”选择器?
- office-js - 在 Outlook 加载项中发出 API 请求时出错
- amazon-web-services - S3/CloudFront DNS 主机不会仅在韩国 IP 中更新
- javascript - 如何将表单值修补到递归嵌套的 Angular 表单?
- c++ - 仅在 MacOS 上用于析构函数的未定义符号
- python - 使用 pyautogui 和数学在油漆中绘制棕褐色波
- amazon-web-services - 是否可以运行多个并行写入 S3 的 Spark Structured Streaming 作业?
- node.js - 为什么流式传输响应比在 Node.js / Express 中发送常规响应慢得多?