老鱼Python数据分析——篇六:使用selenium获取动态数据

现在很多页面上的数据都是动态加载,所以使用scrapy来爬取页面,只能得到页面HTML的布局代码,而不能获得数据。

而且对于新手,上路就使用scrapy爬动态数据比较困难,所以使用selenium来打开浏览器,再加载页面获得数据。

 

需求:统计每天大盘收盘后的汇总数据。

 

找到了一个网站https://xuangubao.cn/dingpan,每天收盘后的数据都在该页面上。


下面,使用selenium爬取页面上的汇总数据。

第一步,安装selenium

 

第二步,安装对应浏览器驱动,我使用的谷歌浏览器,所以我安装的chromedriver。注意版本问题。

驱动下载地址:https://chromedriver.storage.googleapis.com/index.html

 

第三步,安装beautifulsoup4和lxml

 

第四步,分析页面结构。

 

数据都在class为“ban-cart”的DIV中的SPAN标签中。

 

第五步,实现代码:

# 先安装selenium,再安装chromeDriver
from selenium import webdriver
from bs4 import BeautifulSoup
import time

browser = webdriver.Chrome()
browser.get("https://xuangubao.cn/dingpan")
page = browser.page_source
soup = BeautifulSoup(page,"lxml")

# 得到日期
# today = soup.find("div", attrs={"class", "ban-chart-date-container"}).find_all("p")
# print(today[0].get_text().strip(),today[1].get_text().strip(),"日")
date = time.strftime('%Y-%m-%d',time.localtime(time.time()))
print(date)
# 查询涨跌数据
spans = soup.find("div", attrs={"class":"ban-chart"}).find_all("span")
up = spans[3].get_text().strip()
down = spans[4].get_text().strip()
limitUp = spans[6].get_text().strip()
limitDown = spans[7].get_text().strip()
bomb = spans[8].get_text().strip()
print("涨:",up)
print("跌:",down)
print("涨停:",limitUp)
print("跌停:",limitDown)
print("炸板率:", bomb)

# 连板个股
listCount = []  # 连板个数
guList = soup.find("table", attrs={"class", "table hit-pool__table"}).find_all("tr")
for gu in guList[1:]:
    tds = gu.find_all("td")
    guName = tds[1].find_all("span")[0].get_text().strip()
    guCode = tds[1].find_all("a")[0].get_text().strip()[-6:]
    # print(guName,"(",guCode,")",":",tds[12].get_text().strip())
    listCount.append(tds[12].get_text().strip())  # 将连接数据保存到list

# 显示不同连板的个数
for i in set(listCount):
    print("数据{0}在list中的个数为:{1}".format(i, listCount.count(i)))

browser.close()

爬到的数据效果如下:

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值