Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python爬取东方财富网资金流向数据并存入MySQL

Python爬取东方财富网资金流向数据并存入MySQL

作者头像
润森
发布于 2022-08-18 01:52:19
发布于 2022-08-18 01:52:19
2.7K01
代码可运行
举报
文章被收录于专栏:毛利学Python毛利学Python
运行总次数:1
代码可运行

第一步:程序及应用的准备

首先我们需要安装selenium库,使用命令pip install selenium;然后我们需要下载对应的chromedriver,,安装教程:。我们的chromedriver.exe应该是在C:\Program Files\Google\Chrome\Application中(即让它跟chrome.exe在同一个文件下)。

下载完成后,我们还需要做两件事:1.配置环境变量;

2.将chromedriver.exe拖到python文件夹里,因为我用的是anaconda,所以我直接是放入D:\Anaconda中的。

此时,我们所需的应用已经准备好了。

第二步:进入我们要爬取的网页(),按F12进入调试模式.<div> 可定义文档中的分区或节,可以对同一个 <div> 元素应用 class 或 id 属性,但是更常见的情况是只应用其中一种。这两者的主要差异是,class 用于元素组(类似的元素,或者可以理解为某一类元素),而 id 用于标识单独的唯一的元素。

当我们依次点击右侧div时,我们可以发现,我们想要爬取的数据对应的代码为右侧蓝色部分,而下方的<table>表示整个表格,<thead>表示我们的表头即文字部分,<tbody>表示表头下方的数据部分。

我们可以发现,<thead>跟<tbody>的每一行都是以<tr>开始,以<tr>结束的;在<thead>中,每一个格子是以<th>开始,以<th>结束的;在<tbody>中,每一个格子是以<td>开始,以<td>结束的。至此,我们对要爬取的数据的构成有了一个大概的认知。

第三步:编写程序

etree.HTML()可以用来解析字符串格式的HTML文档对象,将传进去的字符串转变成_Element对象。作为_Element对象,可以方便的使用getparent()、remove()、xpath()等方法。

options常用属性及方法为:

  • binary_location='':指定Chrome浏览器路径- debuger_address=':指定调试路径- headless: 无界面模式- add_argument():添加启动参数- add_extension:添加本地插件- add_experimental_option:添加实验选项- to_capablilities:将options转为标准的capablitiies格式 selenium的page_source方法可以获取到页面源码,提取出我们需要的信息。

div[@class="dataview"表示我们通过class属性的值定位到我们要爬取的表格div,‘/table’则是表示<div>的下一级<table>目录。

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:|表达式|描述 |nodename|选取此节点的所有子节点。|/|从根节点选取(取子节点)。|//|从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置(取子孙节点)。|.|选取当前节点。|..|选取当前节点的父节点。|@|选取属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from selenium import webdriver  #导入模块,selenium导入浏览器驱动,用get方法打开浏览器
import time
import re
import csv  #存储数据
from lxml import etree #数据的解析

option = webdriver.ChromeOptions()   #网址获取
option.add_argument('headless')  #无界面启动,即设置浏览器静默
#等价于 options.headless=True
driver = webdriver.Chrome(options=option)  
#等价于 driver = webdriver.Chrome(desired_capabilities=options.to_capablities())
driver.get('https://data.eastmoney.com/zjlx/000040.html') #打开浏览器
time.sleep(2) #推迟调用线程的运行,可表示进程挂起的时间,这里让他推迟执行2秒

source = driver.page_source #获取页面源码
mytree = etree.HTML(source) #解析网页内容
tables = mytree.xpath('//div[@class="dataview"]/table') #定位表格
for i in range(len(tables)): #循环表格
    onetable = []
    trs = tables[i].xpath('.//tr') #取出所有tr标签
    for tr in trs:
        ui = []
        for td in tr:
            texts = td.xpath(".//text()") #取出所有td标签下的文本
            mm = []
            for text in texts:
                mm.append(text.strip("")) #去掉所有空格、换行符
            ui.append(','.join(mm))
        onetable.append(ui) #整张表格

with open('data.csv', 'a', newline='') as file: #将数据写入文件
    csv_file = csv.writer(file)
    for i in onetable:
        csv_file.writerow(i) #按行写入

time.sleep(2)
driver.close() #关闭当前窗口

这样我们就可以把一个股票的历史资金流向的数据放在一个csv文件里了,接下去考虑到存储问题,我们可以尝试连接MySQL,将数据放入MySQL中。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据集 | 地理空间数据云30m的DEM爬取
DEM数据是我们经常用到的一种数据,小编今天就带大家一块看一下怎么用python来爬取地理空间数据云的30m的DEM数据。
GIS与遥感开发平台
2022/04/29
1.1K0
数据集 | 地理空间数据云30m的DEM爬取
Selenium爬取京东商品案例
Selenium爬取京东衣服评论 16/10 周三 晴 需要的模块: from selenium import webdriver from lxml import etree import ti
Python知识大全
2020/02/13
7280
Selenium爬取京东商品案例
Python 使用selenium爬取拉钩网Python职位信息(爬虫)
17/10 周四 晴 整体思路: 1 使用我们最近讲的selenium模块进行模拟浏览器爬取 2 网页解析使用 xpath(底层为c语言,效率高) 3保存为csv数据 需要的模块: impo
Python知识大全
2020/02/13
6370
Python 使用selenium爬取拉钩网Python职位信息(爬虫)
实战 | 教你快速爬取热门股票,辅助量化交易!
量化交易有一个非常重要的指标 AR,它是通过固定公式计算出的,用于反映市场买卖人气的技术指标
AirPython
2022/12/29
1.5K0
实战 | 教你快速爬取热门股票,辅助量化交易!
Python3爬虫模拟登录爬取百度图片
pycharm,python3.7,selenium库,request库,os文件库,re模块的正则表达式运用,自行下载chromedriver自测软件
HcodeBlogger
2020/07/14
6460
实战项目一:爬取QQ群中的人员信息
我们模拟登陆用的是selenium库,selenium是一个自动化测试工具,在爬虫中通常用来进行模拟登陆。
K同学啊
2019/01/22
1.7K0
Selenium&Chrome实战:动态爬取51job招聘信息
Selenium3.8版本以后,已经不支持PhanTomJS了,可以使用谷歌,火狐的无头浏览器来代替PhanTomJS
py3study
2020/01/07
1.9K0
利用selenium尝试爬取豆瓣图书
目录 一、小小课堂 二、selenium+driver初步尝试控制浏览器 三、完整代码 四、运行结果 链接:https://search.douban.com/book/subject_searc
Python研究者
2020/11/24
1.5K0
AI网络爬虫:批量爬取豆瓣图书搜索结果
你是一个Python编程专家,要完成一个爬虫Python脚本编写的任务,具体步骤如下:
AIGC部落
2024/06/24
2350
AI网络爬虫:批量爬取豆瓣图书搜索结果
selenium爬取拉勾网python职位信息
直接上代码,主要爬取的是广州的python职位信息 from selenium import webdriver import time from lxml import etree import re from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by
菲宇
2019/11/20
1.2K0
scrapy结合selenium进行动态加载页面内容爬取
使用requests进行数据获取的时候一般使用的是respond.text来获取网页源码,然后通过正则表达式提取出需要的内容。
zx钟
2019/07/19
2.5K0
爬虫入门经典(十四) | 使用selenium尝试爬取豆瓣图书
  大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己
不温卜火
2020/11/03
7410
爬虫入门经典(十四) | 使用selenium尝试爬取豆瓣图书
Python 爬取飞猪上全国景点的数据
前段时间有人找我写代码爬点东西,就是爬飞猪上全国景点的当月销量、优惠价、城市这些数据,等我写好了之后,他说不要了…
伪君子
2019/09/09
2.6K4
Python 爬取飞猪上全国景点的数据
基于selenium爬取拉勾网职位信息
  Selenium 本是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。而这一特性为爬虫开发提供了一个选择及方向,由于其本身依赖于浏览器,所以使用Python的selenium库的前提是:需要下载相应的浏览器驱动程序,这里附上Chromedriver的下载地址:chromedriver;(64位的向下兼容,)
py3study
2020/01/16
7030
手把手教你用Scrapy爬虫框架爬取食品论坛数据并存入数据库
大家好,我是杯酒先生,这是我第一次写这种分享项目的文章,可能很水,很不全面,而且肯定存在说错的地方,希望大家可以评论里加以指点,不胜感激!
Python进阶者
2021/03/12
8110
手把手教你用Scrapy爬虫框架爬取食品论坛数据并存入数据库
Selenium
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器,但是现在谷歌的无头比较火,下面展示谷歌的无头)
HammerZe
2022/05/11
3.3K0
Selenium
python爬虫 senlenium爬取拉勾网招聘数据
用selenium爬虫实现,输入任意关键字,比如 python 数据分析,点击搜索,得到的有关岗位信息,爬取下来保存到Excel。
叶庭云
2020/09/17
1.5K0
python爬虫   senlenium爬取拉勾网招聘数据
从登陆到爬取:Python反反爬获取某宝成千上万条公开商业数据
chrom浏览器的驱动器下载地址:http://npm.taobao.org/mirrors/chromedriver/
荣仔_最靓的仔
2021/02/02
1.2K0
从登陆到爬取:Python反反爬获取某宝成千上万条公开商业数据
Python爬虫技术系列-04Selenium库的使用
针对119.0.x的版本驱动需要在 https://googlechromelabs.github.io/chrome-for-testing/ 中下载
IT从业者张某某
2023/11/07
1.4K0
Python爬虫技术系列-04Selenium库的使用
使用 Scrapy + Selenium 爬取动态渲染的页面
在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值。但是通过观察我们会发现,通过浏览器进行url请求发送则会加载出对应的动态加载出的数据。那么如果我们想要在scrapy也获取动态加载出的数据,则必须使用selenium创建浏览器对象,然后通过该浏览器对象进行请求发送,获取动态加载的数据值. 本文分享scrapy的介绍和如何配合selenium实现动态网页的爬取。
霍格沃兹测试开发Muller老师
2022/06/06
2K0
推荐阅读
相关推荐
数据集 | 地理空间数据云30m的DEM爬取
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验