前言

因为东方财富网的Js限制,第一页很好爬取,但是第二页开始的网页地址并没有改变,看了下xpath页面元素也和第一页没什么区别,所以只好曲线救国,用selenium找到“下一页”按钮进行跳转再爬取,好处是肯定都能爬到,坏处则是必须一直开着chromedriver,而且爬取效率并不高。

7月27日更新:
通过后台查看,发现以下代码可以直接读取json格式的数据,这样直接提取即可(可能不同的时间、不同的ip获取的地址都是不同的,需要自己F12后台查看)
http://15.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112405246752243253328_1595824090101&pn=2&pz=100&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1595824090123
pn是page number 页数
pz是page size 每一页的展示页数
读取后的结果如下图所示:

代码

from selenium import webdriver
from time import sleep
import mysql.connector as mysql'''爬取上证指数的所有股票信息,保存到本地文件/数据库'''def extractor(xpath_text):'''根据xpath获取内容'''TCases = driver.find_element_by_xpath(xpath_text)return TCases.textdef export_to_file(stock_dict):'''导出股票数据'''with open('沪指股票数据.csv', 'a', encoding='gbk') as file:file.write(','.join(stock_dict.values()))file.write('\n')db = mysql.connect(host = 'localhost',user = 'root',passwd = '',database = 'testdb2'
)
cursor = db.cursor()
query = "insert into stocks (symbol, name, new, chg_rate, change_value, vol, amount, amplitude, high, low, open, prev_close, qrr, turnover_rate, pe, pb) Values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);"url = 'http://quote.eastmoney.com/center/gridlist.html#sh_a_board'
driver = webdriver.Chrome("D:\python\爬虫\chromedriver.exe")
driver.get(url)
sleep(5)for page_num in range(1, 81):for i in range(1, 11):for ele_type in ['odd', 'even']:stock_dict = {}number_list = ['2', '3', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18']ele_list = ['代码', '名称', '最新价', '涨跌幅', '涨跌额', '成交量', '成交额', '振幅', '最高价', '最低价', '今开','昨收', '量比', '换手率', '市盈率', '市净率']for j, name in zip(number_list, ele_list):temp_xpath = "/html/body/div[@class='page-wrapper']/div[@id='page-body']/div[@id='body-main']/div[@id='table_wrapper']/div[@class='listview full']/table[@id='table_wrapper-table']/tbody/tr[@class='{}'][{}]/td[{}]".format(ele_type, i, j)stock_dict[name] = extractor(temp_xpath)print(list(stock_dict.values()))cursor.execute(query, list(stock_dict.values()))db.commit()# export_to_file(stock_dict)#到下一页继续爬driver.find_element_by_xpath("/html/body/div[@class='page-wrapper']/div[@id='page-body']/div[@id='body-main']/div[@id='table_wrapper']/div[@class='listview full']/div[@class='dataTables_wrapper']/div[@id='main-table_paginate']/a[@class='next paginate_button']").click()sleep(1)driver.close()

爬虫:东方财富网股票数据爬取相关推荐

  1. python如何爬虫股票数据_简单爬虫:东方财富网股票数据爬取(python_017)

    需求:将东方财富网行情中心的股票数据爬取下来,包括上证指数.深圳指数.上证A股.深圳A股.新股.中小板.创业板 等 一.目标站点分析 东方财富网的行情中心页面包含了所有股票信息.在左侧的菜单栏中包含了 ...

  2. 爬虫项目3 - 股票数据爬取

    爬虫项目3 - 股票数据爬取 步骤 步骤 爬取股票名和股票列表,使用gucheng网进行爬取,网址: https://hq.gucheng.com/gpdmylb.html import reques ...

  3. 【爬虫入门】股票数据爬取

    需修改output_file变量 东方财富网 + 腾讯证券 import re import requests import traceback from bs4 import BeautifulSo ...

  4. python爬虫爬取股票软件数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转载)...

    完整代码 实际上,整个事情完成了两个相对独立的过程:1.爬虫获取网页股票数据并保存到本地文件:2.将本地文件数据储存到MySQL数据库.并没有直接的考虑把从网页上抓取到的数据实时(或者通过一个临时文件 ...

  5. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转)

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  6. python抓取数据库数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储...

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  7. python爬虫实现股票数据存储_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储!...

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  8. MySQL 怎么插入10天前的日期_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储!...

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  9. 使用python进行股票数据爬取中的时间限制和策略

    股票数据爬取中的时间限制和策略 在进行股票数据爬取时,时间限制和策略是非常重要的考虑因素.本文将介绍两个与此相关的函数:is_trade_day()和stock_work_day(). is_trad ...

最新文章

  1. 中心化,去中心化?关乎互联网未来命运的重要选
  2. Juce源代码分析(一)Juce的优势
  3. html5程序自动登录,Jtro的技术分享:网页调起unity的exe程序并自动登录
  4. Pytest之pytest.assume用例中断言1失败会继续执行后续代码断言2
  5. 4种不同类别的机器学习概述
  6. TCP / IP攻击:ARP缓存中毒的基本原理、TCP序列号预测和TCP重置攻击
  7. python赋值运算符难理解_零基础学 Python(8)运算符 — 算术、比较、赋值、逻辑...
  8. mongodb的体系
  9. 5.2.8.字符设备驱动代码实践1
  10. Kubernetes1.91(K8s)安装部署过程(六)--node节点部署
  11. 解析音视频网络传输技术之一
  12. JavaScript读取JSON文件
  13. docker安装微信
  14. ARM与裸机开发教程
  15. 2021虫虫百度域名URL批量采集工具【自动去重】
  16. 一直在寻找:我亲爱的朋友。
  17. 一个去除pdf回车符的网页
  18. 浅谈深度学习:LSTM对股票的收益进行预测(Sequential 序贯模型,Keras实现)
  19. 虚幻4引擎源码学习笔记(一):整体文件结构
  20. 使用django框架完成详情页和列表页

热门文章

  1. NFT Insider #45:游戏巨头育碧与 The Sandbox 达成合作,YGG SEA战略投资 Dappie Gang
  2. 【学习总结】总结一些书籍、Blog、网站等资料汇总
  3. HTML上传文件超过2M就上传失败了解决方案
  4. root后的华为手机,华为手机可以root
  5. IDC X 得帆 |低代码PaaS驱动集团企业数字化创新
  6. 从0开始用Java做智慧农业物联网
  7. dlopen / dlsym函数(动态链接库)
  8. Android 中颜色透明度值
  9. 简单的个人博客网站设计 静态HTML个人博客主页 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业
  10. flume启动失败:org.apache.flume.ChannelException: Put queue for MemoryTransaction of capacity 10000 full