Selenium Python 实战:爬取个股实时信息

这篇具有很好参考价值的文章主要介绍了Selenium Python 实战:爬取个股实时信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Selenium是广泛使用的开源Web UI(用户界面)自动化测试套件之一。支持Chrome, Edge, Firfox等常见浏览器。除用于web应用程序自动化测试外,Selenium 也适合用于抓取JavaScript 动态网页数据。
python爬股票时时更新,selenium,python,测试工具,爬虫

本文演示如何使用 Selenium python库编程来爬取个股数据。

1、安装 selenium python 库

用pip安装 selenium库

pip install selenium

下载浏览器的驱动

确定你使用的浏览器,并下载相应驱动。常见浏览器驱动下载地址如下:
– | –
Chrome | https://sites.google.com/chromium.org/driver/
Edge | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox | https://github.com/mozilla/geckodriver/releases
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/

下载的驱动可以放在项目目录下,或者将驱动程序的路径加入到系统 path环境变量中。
如果电脑上没有安装FireFox,即使下载了驱动,由于电脑未安装浏览器程序,运行时也会报错。

2、selenium基本编程流程

导入selenium 库

from selenium import webdriver

导入keys 类

from selenium.webdriver.common.keys import Keys

导入定位元素方法类:

from selenium.webdriver.common.by import By

创建 webdriver对象

driver = webdriver.Chrome(executable_path=r'./chromedriver.exe')

打开网页

driver.get("http://www.python.org")

运行程序,会自动打开1个浏览器窗口, 并打开网页http://www.python.org

定位元素:

网页中有1个元素

使用find_element()方法定位元素
element = driver.find_element(By.ID, “passwd-id”)
element = driver.find_element(By.NAME, “passwd”)
element = driver.find_element(By.XPATH, “//input[@id=‘passwd-id’]”)
element = driver.find_element(By.CSS_SELECTOR, “input#passwd-id”) 注意,find_element()方法中,对于xpath, css_selector,只返回第1个匹配到的结果

3. 抓取个股数据

本例功能:从某网站首页,自动输入股票代码,打开1个新窗口,定位价格元素并打印数据。
完整代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

import time

options = webdriver.ChromeOptions()
options.add_argument('user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"')
driver=webdriver.Chrome(executable_path=r'./chromedriver.exe',chrome_options=options)

# tell selenium implicity to wait for 3 seconds for next action 
driver.implicitly_wait(3) 
driver.get("https://www.eastmoney.com/")
print("title:",driver.title)
elem = driver.find_element(By.ID,'code_suggest')
elem.clear()
elem.send_keys("600332")
elem = driver.find_element(By.ID,'search_view_btn1').click()
#切换到新窗口
driver.switch_to.window(driver.window_handles[-1])
# time.sleep(6)
try:
    price_o = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "/html[1]/body[1]/div[1]/div[1]/div[1]/div[8]/div[2]/div[1]/table[1]/tbody[1]/tr[1]/td[2]/span[1]/span[1]")) )
    print("Stock open at: ",price_o.text)
    price_c = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[@class='zxj']/span/span[@class='price_up blinkred']")) )
    #price_c = driver.find_element(By.XPATH,"//div[@class='zxj']/span/span[@class='price_up blinkred']")
    print("stock close at: ",price_c.text)
except:
    print("error happened")
finally:
    driver.quit()

说明:

  1. options.add_argument('user-agent=…) 设置请求头user-agent参数,避免被网站拒绝
    2) elem.send_keys(“600332”) 表示输入600332代码
    3) elem = driver.find_element(By.ID,‘search_view_btn1’).click() 表示定位id=search_view_btn1的元素,并单击。
    4) driver.switch_to.window(driver.window_handles[-1]) 表示切换到浏览器最新创建的窗口
    5) WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, “/html[1]/body[1]/div[1]/div[1]/div[1]/div[8]/div[2]/div[1]/table[1]/tbody[1]/tr[1]/td[2]/span[1]/span[1]”)) ) 表示尝试等待元素出现,通常用于AJAX网页,最多等10秒。

运行 python demo.py文章来源地址https://www.toymoban.com/news/detail-817896.html

title: 东方财富网:财经门户,提供专业的财经、股票、行情、证券、基金、理财、银行、保险、信托、期货、黄金、股吧、博客等各类财经资讯及数据
[3744:12972:0605/214254.992:ERROR:interface_endpoint_client.cc(696)] Message 0 rejected by interface blink.mojom.WidgetHost
Stock open at:  34.70
stock close at:  34.77

到了这里,关于Selenium Python 实战:爬取个股实时信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python实战:用Selenium爬取网页数据

    网络爬虫是Python编程中一个非常有用的技巧,它可以让您自动获取网页上的数据。在本文中,我们将介绍如何使用Selenium库来爬取网页数据,特别是那些需要模拟用户交互的动态网页。 Selenium是一个自动化测试工具,它可以模拟用户在浏览器中的操作,比如点击按钮、填写表

    2024年02月06日
    浏览(37)
  • python爬虫实战 scrapy+selenium爬取动态网页

    最近学习了scrapy爬虫框架,想要找个目标练练手。由于现在很多网页都是动态的,因此还需要配合selenium爬取。本文旨在记录这次学习经历,如有疑问或不当之处,可以在评论区指出,一起学习。 对scrapy不了解的同学可以阅读这篇文章 爬虫框架 Scrapy 详解,对scrapy框架介绍的

    2024年02月07日
    浏览(59)
  • Python爬虫实战:selenium爬取电商平台商品数据(1)

    def index_page(page): “”\\\" 抓取索引页 :param page: 页码 “”\\\" print(‘正在爬取第’, str(page), ‘页数据’) try: url = ‘https://search.jd.com/Search?keyword=iPhoneev=exbrand_Apple’ driver.get(url) if page 1: input = driver.find_element_by_xpath(‘//*[@id=“J_bottomPage”]/span[2]/input’) button = driver.find_element_by_xpath(‘

    2024年04月28日
    浏览(29)
  • Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储

    Ajax(Asynchronous JavaScript and XML)是一种用于在Web应用程序中实现异步通信的技术。它允许在不刷新整个网页的情况下,通过在后台与服务器进行数据交换,实时更新网页的一部分。Ajax的主要特点包括: 异步通信: Ajax是异步的,这意味着它可以在不阻塞用户界面的情况下进行

    2024年02月09日
    浏览(31)
  • Python爬虫实战-批量爬取豆瓣电影排行信息

    大家好,我是python222小锋老师。 近日锋哥又卷了一波Python实战课程-批量爬取豆瓣电影排行信息,主要是巩固下Python爬虫基础 视频版教程: Python爬虫实战-批量爬取豆瓣电影排行信息 视频教程_哔哩哔哩_bilibili Python爬虫实战-批量爬取豆瓣电影排行信息 视频教程作者:小锋老师

    2024年02月05日
    浏览(34)
  • python通过selenium爬取网页信息,python获取浏览器请求内容,控制已经打开的浏览器

    背景:通过python中直接get或者urlopen打开一些有延迟加载数据的网页,会抓取不到部分信息。 1. 命令行打开chrome,并开启调试端口 (前提,找到chrome安装目录,找到chrome.exe所在路径,添加到环境变量中,例如我的是C:Program FilesGoogleChromeApplication) remote-debugging-port指定远程调试

    2024年02月16日
    浏览(52)
  • Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)(1)

    browser.find_element_by_xpath(‘.//ul[@id=“headerNav”]/li[4]’).click() 8.点击群管理之后,进入群管理界面,我们需要的是成员管理 WebDriverWait(browser, 1000).until( EC.presence_of_all_elements_located( (By.CLASS_NAME, ‘color-tit’) ) ) browser.find_element_by_class_name(‘color-tit’).click() 9.点击成员管理之后会重新

    2024年04月28日
    浏览(31)
  • 【爬虫系列】Python爬虫实战--招聘网站的职位信息爬取

    1. 需求分析 从网上找工作,大家一般都会通过各种招聘网站去检索相关信息,今天利用爬虫采集招聘网站的职位信息,比如岗位名称,岗位要求,薪资,公司名称,公司规模,公司位置,福利待遇等最为关心的内容。在采集和解析完成后,使用 Excel 或 csv 文件保存。 2. 目标

    2024年02月02日
    浏览(36)
  • 爬虫学习记录之Python 爬虫实战:爬取研招网招生信息详情

    【简介】本篇博客 为爱冲锋 ,爬取北京全部高校的全部招生信息,最后持久化存储为表格形式,可以用作筛选高校。 此处导入本次爬虫所需要的全部依赖包分别是以下内容,本篇博客将爬取研招网北京所有高校的招生信息,主要爬取内容为学校,考试方式,所在学院,专业

    2024年01月24日
    浏览(34)
  • python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息

    接着上一篇的笔记,Scrapy爬取普通无反爬、静态页面的网页时可以顺利爬取我们要的信息。但是大部分情况下我们要的数据所在的网页它是动态加载出来的(ajax请求后传回前端页面渲染、js调用function等)。这种情况下需要使用selenium进行模拟人工操作浏览器行为,实现自动化

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包