python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql

这篇具有很好参考价值的文章主要介绍了python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问财的数据海量及时,作为量化交易的数据来源也是一种不错的选择,之前也用过一些免费的api,但是数据不是很完整,时效性也不高,试了一下问财觉得很不错,不过下载有次数限制,非会员每天只能导出2次,会员每天200次。因为不想每天手工操作,所以想通过该方法实现全自动下载导出存入mysql

安装selenium库

pip install selenium

安装google浏览器,查看版本号

python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql

下载对应版本驱动

python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql

下载地址:CNPM Binaries Mirror

解压后将文件放在 python/scripts 目录下

python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql

用cmd命令来启动google浏览器,也可以做成一个bat文件,方便下次快速打开浏览器

C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"

python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql

用上面的命令打开浏览器的好处是,运行程序不用产生新的浏览器,只会使用一个浏览器,这样就可以事先将账号登录好再进行后续的操作。

上代码查询一下试一试

from selenium import webdriver
import time
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
browser = webdriver.Chrome(options=options)
browser.get(f"https://www.iwencai.com/unifiedwap/result?w=%20%E7%AB%9E%E4%BB%B7%E6%B6%A8%E5%B9%85%20%E6%B5%81%E5%8A%A8%E5%B8%82%E5%80%BC%20%E6%A6%82%E5%BF%B5%20%E9%BE%99%E5%A4%B4%20%E4%BA%8C%E7%BA%A7%E8%A1%8C%E4%B8%9A&querytype=stock")
browser.quit();

查询效果如下:

python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql

导出到excel,增加三行代码

from selenium import webdriver
import time
from selenium.webdriver.common.by import By


options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
browser = webdriver.Chrome(options=options)
browser.get(f"https://www.iwencai.com/unifiedwap/result?w=%20%E7%AB%9E%E4%BB%B7%E6%B6%A8%E5%B9%85%20%E6%B5%81%E5%8A%A8%E5%B8%82%E5%80%BC%20%E6%A6%82%E5%BF%B5%20%E9%BE%99%E5%A4%B4%20%E4%BA%8C%E7%BA%A7%E8%A1%8C%E4%B8%9A&querytype=stock”)

time.sleep(2)
button = browser.find_element(By.CLASS_NAME,'table-export');
button.click();

browser.quit();

效果如下:

python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql

安装openpyxl 用于操作Excel

pip install openpyxl

安装mysql库

pip install pymysql

my.ini  或 my.cnf 增加一个配置项,可以批量插入大批量数据到sql

max_allowed_packet=100M

代码如下:

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
import os
import pymysql
import decimal
import sys
import openpyxl
import uuid



def down(date):
    
    options = webdriver.ChromeOptions()
    options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
    browser = webdriver.Chrome(options=options)
    browser.get(f"https://www.iwencai.com/unifiedwap/result?w={date}%20%E7%AB%9E%E4%BB%B7%E6%B6%A8%E5%B9%85%20%E6%B5%81%E5%8A%A8%E5%B8%82%E5%80%BC%20%E6%A6%82%E5%BF%B5%20{date}%E9%BE%99%E5%A4%B4%20%E4%BA%8C%E7%BA%A7%E8%A1%8C%E4%B8%9A&querytype=stock")
    time.sleep(2)
    button = browser.find_element(By.CLASS_NAME,'table-export');
    button.click();

    browser.quit();
    pass


def objToStr(value):
    if value is None:
        return ""
    else:
        return str(value)
    
def strToDecimal(str):
    str = objToStr(str)
    if str == "":
        str = "0"
    return decimal.Decimal(str)    

def getDate():
    return time.strftime('%Y-%m-%d', time.localtime(time.time()));


def getConn1():
    return pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="123456",db="wc_data" )
 
def importAll(date):    
    path='D:\\Users\Administrator\\下载'
    for file_name in os.listdir(path):
        if "竞价涨幅" in file_name:
            print(file_name)
            importFile(path + "\\" + file_name,date);
            time.sleep(3);
            os.remove(path + "\\" + file_name);
            

def importFile(filename,date):
    conn1 = getConn1();
    cursor1 = conn1.cursor();

    inwb = openpyxl.load_workbook(filename);

    sheetsname = inwb.sheetnames;
    ws = inwb[sheetsname[0]];

    rows = ws.max_row -1;
    cols = ws.max_column;
    print(rows);
    print(cols);

    i = 2
    value = ""; 
    while i <= rows:
        code = ws.cell(i,1).value;
        name = ws.cell(i,2).value;
        zf = ws.cell(i,5).value;
        type_name = ws.cell(i,9).value;
        notions = ws.cell(i,7).value;
        sz = ws.cell(i,18).value;
        amount = ws.cell(i,15).value;


        if zf == "--":
            zf = "0";
            
        if sz == "--":
            sz = "0";

        if amount == "--":
            amount = "0";              

            
        value += f"('{date}','{code}', '{name}','{zf}','{type_name}','{notions}','{sz}','{amount}'),";
        i = i + 1;
        pass

    value = value[:-1];

    sql = f"delete from k_data_jj ";
    cursor1.execute(sql)
    conn1.commit()

    if value != "":
        sql = f'INSERT into k_data_jj(date,code,name,zf,type,notions,sz,amount) VALUES {value}';
        count = cursor1.execute(sql)
        conn1.commit()

    inwb.close();
                

def job():
    date = getDate();
    down(date);
    time.sleep(20);
    importAll(date);


job();

python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql

5000多个股数据,10秒内导入完成,接下来就可以在数据库进行数据统计分析了


Demo下载https://download.csdn.net/download/gdgztt/87271607文章来源地址https://www.toymoban.com/news/detail-479107.html

到了这里,关于python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • jenkins+selenium+python实现web自动化测试

    jenkins+selenium可以做到对web自动化的持续集成。 Jenkins的基本操作: 新建视图: 新建job: 可以选择构建一个自由风格的软件项目或者复制已有的item 安装Jenkins插件, SSH plugin ,Email Extension Plugin , Hudson Seleniumhq plugin 点击系统管理-管理插件 在可选插件面板Filter中输入插件名,

    2024年02月02日
    浏览(58)
  • 使用Python+selenium实现第一个自动化测试脚本

    这篇文章主要介绍了使用Python+selenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 最近在学web自动化,记录一下学习过程。 此处我选用python3.6+selenium3.0,均用

    2024年02月03日
    浏览(60)
  • selenium python 实现基本自动化测试的示例代码

    安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开

    2024年02月02日
    浏览(56)
  • 基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

    另一篇文章 :自动化测试框架(pytest)附学习视频 学习视频,学习文档-白月黑羽 说明: 1紧跟着写的不加/,不加空格-表示同一级别信息,加空格表示后代 2.css定位tag,id,class时分别有不同的标识,其他属性都要加[]进行搜索, Xpath所有属性都要都加【】,tag不用 3. css在使用ta

    2024年02月03日
    浏览(106)
  • Python Selenium实现自动化测试及Chrome驱动使用!

    本文将介绍如何使用Python Selenium库实现自动化测试,并详细记录了Chrome驱动的使用方法。 通过本文的指导,读者将能够快速上手使用Python Selenium进行自动化测试。 并了解如何配置和使用Chrome驱动来实现更高效的自动化测试。 一、Python Selenium简介 Python Selenium是一个用于Web应用

    2024年03月10日
    浏览(68)
  • Python Selenium实现自动化测试及Chrome驱动使用

    本文将介绍如何使用 Python   Selenium 库实现 自动化测试 ,并详细 记录 了Chrome驱动的使用方法。 通过本文的指导,读者将能够快速上手使用Python Selenium进行自动化测试。 并了解如何配置和使用Chrome驱动来实现更高效的自动化测试。 一、Python Selenium简介 Python Selenium是一个用于

    2024年02月03日
    浏览(62)
  • Python+VS Code+Selenium+EdgeDriver实现网页自动化

    一:安装Selenium 这里用 pip 安装Selenium 3.3.1 1,打开 CMD ,输入 pip install selenium==3.3.1 2,出现 Successfully Install 后关闭窗口( 我是卸载后安装,第一次安装的界面与此不同 )  3,使用pip show selenium 可以查看版本 注意:非必要不安装4.0及以上版本,新版本调用Pack时语法发生改动

    2024年01月19日
    浏览(55)
  • 【python】之selenium模块,实现Web端自动化测试!【基础篇】

    Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium很容易完成之

    2024年02月06日
    浏览(45)
  • 从零开始学习Python控制开源Selenium库自动化浏览器操作,实现爬虫,自动化测试等功能(一)

    介绍Selenium : Selenium是一个用于自动化浏览器操作的开源工具和库。它最初是为Web应用测试而创建的,但随着时间的推移,它被广泛用于Web数据抓取和网页自动化操作。Selenium 支持多种编程语言,包括Python,Java,C#等。 这里我们主要实现采用Python的方式 Selenium 的主要特点和

    2024年01月22日
    浏览(76)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包