热点板块页面:https://xuangubao.cn/dingpan/redian

一、首先分析板块名对应的标签

二、根据板块名在excel文件中创建对应的sheet,excel的操作这儿就不细说了,主要使用xlwt、xlrd和openpyxl三个库。因为每天的热点板块有可能相同,所以相同的板块就不用再新建sheet,只需要添加数据即可。

三、根据板块代码,读取板块的龙头信息。板块龙头信息在:https://xuangubao.cn/theme/xxxxxxx(板块代码)。

代码实现分为以下几点:

1. 登录选股宝网站,并跳转到热点板块页面

2. 遍历热点板块页面,加载前5个热点板块

3. 根据板块名,操作excel文件

4.根据板块ID,读取板块龙头(今日龙头和人气龙头),将龙头信息保存到excel文件还未实现。

from _datetime import datetime
import common.xgb_oper as oper
import time,xlwt,xlrd, openpyxl, os# 读取热点板块页面,排名前两名的板块热股(xx天xx板)
class ReDian():rdfile = "xgbdata\\xgbdata_redian.xlsx"  # 保存每天热点板块数据title = ["时间","板块","板块涨副","人气龙头","今日龙头"]browser = ""        # 浏览器对象page = ""           # 得到页面源码soup = ""           # BeautifulSoup对象# ——————根据名称返回工作薄对象——————# 如果不存在则创建新工作薄后返回def create_sheet(self, sheet_name):wb = openpyxl.Workbook()# 如果文件存在,则加载xlsx文件(只能是xlsx)if (os.path.exists(self.rdfile)):wb = openpyxl.load_workbook(self.rdfile)sheet_names = wb.get_sheet_names()# 判断sheet_name是否存在if(sheet_names.count(sheet_name)==0):st = wb.create_sheet(sheet_name)st.append(self.title)   # 添加标题wb.save(self.rdfile)return streturn wb.get_sheet_by_name(sheet_name)# ——————读取龙头——————def load_longtou(self):txt = ""trs = self.browser.find_elements_by_css_selector(".stocklist-pool-table tr")for tr in trs[1:]:# 判断是否涨停,如果未涨停则读下一条数据if(len(tr.find_element_by_css_selector(".sort-target").find_elements_by_tag_name("div"))<3):continuesname = tr.find_element_by_css_selector(".desc-name").textscount = tr.find_element_by_css_selector(".sort-target").find_elements_by_tag_name("div")[0].textscount = scount.replace("连板","").replace("首板","1")stime = tr.find_element_by_css_selector(".sort-target").find_elements_by_tag_name("div")[2].texttxt += sname+" "+scount+" "+stime + chr(10)print(txt)# 保存到xlsx文件对应的sheet中# ——————遍历每个热点板块的页面,读取龙头——————def load_leadingstock(self, group_list):for g in group_list:txt = g.split("_")[0]code = g.split("_")[1]url = "https://xuangubao.cn/theme/"+str(code)self.browser.get(url)time.sleep(1)spanlist = self.browser.find_elements_by_css_selector(".stocklist-pool-icon-item")if (len(spanlist) <= 0):return# 今日龙头spanlist[3].click()  # 点击全部spanlist[0].click()  # 点击今日龙头self.load_longtou()time.sleep(1)# 人头龙头spanlist[3].click()  # 点击全部spanlist[1].click()  # 点击人气龙头self.load_longtou()time.sleep(2)# ——————遍历“热点”页面,加载前5个热点板块————def load_group(self):self.browser.get("https://xuangubao.cn/dingpan/redian")divs = self.browser.find_elements_by_css_selector(".topgainer-tag")group_list =[]for div in divs[:5]:a = div.find_element_by_tag_name("a")txt = a.text# 去除ST板块if(txt.upper().find("ST")>=0):continuehref = a.get_attribute("href")txt = txt+"_"+str(href)[str(href).rfind("/")+1:]group_list.append(txt)print("板块:"+txt)self.create_sheet(txt)# 加载热点板块的龙头self.load_leadingstock(group_list)# ——————启动函数——————def start(self):self.browser = oper.login()  # 登录选股宝网站# 当天下午三点后才能下载if (datetime.now().hour >= 15):self.load_group()else:print("时间未到,当前时间是"+str(datetime.now().time()))self.browser.quit() # 关闭浏览器if __name__ == "__main__":rd = ReDian()rd.start()

老鱼Python数据分析——篇十四:读取“选股宝”的热点板块信息并存为excel文件相关推荐

  1. 老鱼Python数据分析——篇十五:“选股宝”使用API下载JSON格式数据

    从页面读取数据每次都需要定位HTML标签,那么有没有更简洁的办法呢? 当然有,那就是找到页面数据的来源,分析哪些数据是我们想要的,直接通过WebAPI来获得数据. 我使用的是360极速浏览器,按F12 ...

  2. 老鱼Python数据分析——篇十八:消息推送(二)

    任务三:使用微信机器人和极光API推送消息 一.微信机器人推送消息 使用微信机器人的本质其实就是使用Web端微信,所以有不少的限制,比如 近几个月申请的新微信号是不能登录的 (亲测证实),要注意. 在 ...

  3. 老鱼Python数据分析——篇十八:消息推送(一)

    需求分析 这两天想把分析处理之后的数据,做一个定时发送,按照自己设想和百度搜索,发现有以下几种办法.(只是我发现比较大众化的办法,不代表只有这几种方法) 发送邮件 QQ机器人 微信机器人 极光API ...

  4. 老鱼Python数据分析——篇十:使用selenium获取历史数据并保存

    具体实现步骤如下: 一.打开打开盯盘页面,分析日期控件. 二.点击该区域,出现年-月-日界面. 三.点击"1"号,判断日期是否已改变,改变后下载数据. 四.重复步骤一.二.三,一直 ...

  5. 老鱼Python数据分析——篇十二:使用selenium+BeautifulSoup获取淘股吧数据

    在淘股吧发现有位大牛每天都有数据整理,地址:湖南人的博客 所以直接下载他的博客文章即可. 分析发现,他复盘的数据都是使用的图片,所以只需要把博客文章里面的图片下载到本地. 第一步:分析首页数据: 通过 ...

  6. 老鱼Python数据分析——篇十三:“选股宝”数据下载代码优化

    今天在测试下载本月(5月)数据时发现,只有6号.7号.9号和15号有数据,其他日期的数据都是完全相同的. 如何解决这个问题? 通过观察发现,没有数据或数据读取很慢时,页面上会出现这样的进度条: 所以修 ...

  7. 老鱼Python数据分析——篇九:项目重构(代码)

    修改后的结构如下图所示: common目录下是通用文件,test目录下是功能文件,test目录下的agudata用于保存A股每月的数据 一.xgb_data.py,用于保存xgb网站需要的个人信息,如 ...

  8. 老鱼Python数据分析——篇四:多线程处理

    上一篇我们找到了代理,大家在实现过程中应该发现,每次循环除了3~5秒冷却,验证代理IP也需要时间,上万的IP,每个IP的验证时间平均按1秒算,也需要10000+秒! 太慢了!!! 如何解决这个问题呢? ...

  9. 老鱼Python数据分析——篇二:系统设计(找代理IP)

    开发环境:win7 x64版本,python 3.6,Anaconda3 (64-bit) 因为频繁访问容易被封IP,所以我们需要使用代理来进行数据的爬取(当然你也可以放慢节奏,比如每5秒爬一条记录) ...

最新文章

  1. 提示内存不足,其它服务不能运行
  2. numpy中矩阵运算的特点
  3. Jenkins中连接Git仓库时提示:error: The requested URL returned error: 401 Unauthorized while accessing
  4. 设计模式的理解:迭代器模式(Iterator)
  5. Nacos与Eureka的区别有哪些?
  6. c 语言 string类型转换,用标准c++实现string与各种类型之间的转换
  7. java.lang.IllegalArgumentException: No Retrofit annotation found. (parameter #4)
  8. android录音播放列表,android数据库里的视频,图片,音频表
  9. 我正在参加年度博客之星评选,请大家访问活动页面,帮我投票打分
  10. 经典html,经典 HTML
  11. 系统学习NLP(二十八)--GPT
  12. 如何在弹出的窗口中引发父窗口的postback事件
  13. c( )函数--R语言
  14. doip 源码_汽车DoIP通讯协议的前世今生
  15. STM32F030F4驱动TIM1637数码管芯片
  16. 提供免费的Java OA系统 解决方案
  17. java中输入密码为星号_怎么用c语言把输入的密码变成星号
  18. max导出fbx动画模型导入unity后播放会出现局部模型扭曲解决办法总结
  19. 基于Python进行餐饮行业订单表的数据分析
  20. 斐讯路由器虚拟服务器怎么设置,斐讯PSG1218路由器如何设置

热门文章

  1. 数据库习题(教材:刘爽英清华大学出版社版)
  2. hololens共享视野的例子记录
  3. 端午节(文章来源于网络)
  4. 学习笔记—什么是微数据?itemscope/itemtype/itemprop(搜索引擎seo优化)
  5. 调用Google翻译 语音接口
  6. Kafka源码研究--Comsumer获取partition下标
  7. 计算机科学的稿费有多少,写作近两年,稿费3000+,老实人告诉你为什么那么多人写作能月入30000...
  8. 一道经典的面试题:一只公鸡5块钱,一只母鸡3块钱,3只小鸡一块钱,一个农夫用100块钱买100只鸡(编写java程序)...
  9. 怎么看计算机内存和独显,电脑独立显卡或集成显卡的显存大小怎么查看?
  10. python迅雷下载任务出错_Celery提交任务出错?