Chrome 行情抓取插件
Chrome 行情抓取插件
上班想偷偷摸摸看行情?自己动手写插件啊,尝试写了一个,新建文件夹,命名为StockMonitor,放入文件如下:
- 3个.png图标文件,19X19、48X48、128X128,命名为19、48、128用作插件图标
- manifest.json:配置文件
{
"update_url": "https://clients2.google.com/service/update2/crx",
"name": "StockMonitor",
"version": "1.0.0",
"description": "StockMonitor",
"manifest_version": 1,
"browser_action": {
"default_icon": "19.png",
"default_title": "StockMonitor",
"default_popup": "popup.html"
},
"icons": {
"16": "19.png",
"48": "48.png",
"128": "128.png"
},
"permissions": [
"http://hq.sinajs.cn/",
"storage"
]
}
- popup.html:插件主界面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
table {
width: 150px;
font-size: 10px;
text-align: center;
}
table tr th {
font-family: 'Courier New', Courier, monospace;
font-size: 12px;
}
.tr-red {
color: red;
}
.tr-green {
color: green;
}
</style>
</head>
<div id="maincontent">
<table>
<tr>
<th>名称</th>
<th>现价</th>
<th>涨幅</th>
</tr>
<tr id="510300">
<td>300ETF</td>
<td>0.000</td>
<td>-0.00%</td>
</tr>
<tr id="601288">
<td>农业银行</td>
<td>0.000</td>
<td>+0.00%</td>
</tr>
<tr id="000157">
<td>中联重科</td>
<td>0.000</td>
<td>+0.00%</td>
</tr>
</table>
</div>
<div>
<script type="text/javascript" charset="utf-8" src='jquery.min.js'></script>
<script type="text/javascript" charset="utf-8" src='refresh.js'></script>
</div>
</html>
- refresh.js:数据获取脚本
var stock = {
format_number: function(s, n) {
n = n > 0 && n <= 20 ? n : 2;
s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
var l = s.split(".")[0].split("").reverse(),
r = s.split(".")[1];
t = "";
for (i = 0; i < l.length; i++) {
t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
}
return t.split("").reverse().join("") + "." + r;
},
init: function() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
var quoteStr = xmlhttp.responseText;
quoteStr = quoteStr
.replace(/var hq_str_s_sz/g, '')
.replace(/var hq_str_s_sh/g, '')
.replace(/=/g, ',')
.replace(/"/g, '')
.replace(/\n/g, '')
.replace(/\r\n/g, '');
quoteStr = quoteStr.substr(0, quoteStr.length - 1);
var quotes = quoteStr.split(';');
for (var i = 0; i < quotes.length; i++) {
var quote = quotes[i].split(',');
var code = quote[0]; //代码
var price = parseFloat(quote[2]); //价格
var pct = quote[4]; //百分比
console.log(quote[4] + ',' + pct);
var tr = document.getElementById(quote[0]);
tr.children[1].innerText = stock.format_number(price, 3);
if (pct < 0) {
tr.setAttribute('class', 'tr-green');
tr.children[2].innerText = quote[4] + '%';
} else {
tr.setAttribute('class', 'tr-red');
tr.children[2].innerText = '+' + quote[4] + '%';
}
}
}
}
xmlhttp.open("GET", "http://hq.sinajs.cn/rn=1522216317579&list=s_sh510300,s_sh601288,s_sz000157", true);
xmlhttp.send();
}
};
window.onload = function() {
stock.init();
}
在扩展程序里加载已解压的扩展程序即可使用,想打包什么的自行百度~
Chrome 行情抓取插件的更多相关文章
- Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)
概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...
- Java 实现 HttpClients+jsoup,Jsoup,htmlunit,Headless Chrome 爬虫抓取数据
最近整理一下手头上搞过的一些爬虫,有HttpClients+jsoup,Jsoup,htmlunit,HeadlessChrome 一,HttpClients+jsoup,这是第一代比较low,很快就 ...
- Web UI 自动化单个xpath抓取插件详解
原文地址http://blog.csdn.net/kaka1121/article/details/51878346 单个控件获取 需求: 右键到某个控件上,就能获取到至多三个可以唯一定位该元素的相对 ...
- Chrome + Python 抓取动态网页内容
用Python实现常规的静态网页抓取时,往往是用urllib2来获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字.如下所示: import urllib2 url="http: ...
- 玩爽了!直接在Chrome里抓取数据
一个小测试发现可以自动做题,于是想通过脚本的方式看能不能获取相应的题库,刚好可以学习一下JS异步操作.花了一天时间,总算跑顺利了,遇到了不少坑.记录下来分享. 1.JS如何顺序执行 JS有强大的异步操 ...
- 直接在Chrome里抓取数据
一个小测试发现可以自动做题,于是想通过脚本的方式看能不能获取相应的题库,刚好可以学习一下JS异步操作.花了一天时间,总算跑顺利了,遇到了不少坑.记录下来分享. 1.JS如何顺序执行 JS有强大的异步操 ...
- python 多线程抓取动态数据
利用多线程动态抓取数据,网上也有不少教程,但发现过于繁杂,就不能精简再精简?! 不多解释,直接上代码,基本上还是很好懂的. #!/usr/bin/env python # coding=utf-8 i ...
- EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案之使用RTSP流判断摄像机设备是否在线以及快照抓取
背景分析 熟知EasyNVR产品的小伙伴都知道,通过纯Web化的交互方式,只要配置出摄像机的IP.端口.用户名.密码等信息,就可以将地址进行通道配置完成,即可将设备接入.如果设备支持Onvif协议,E ...
- fiddler无法抓取chrome解决方法
前端开发中,不可避免的要和服务器端进行联调,少了fiddler这个利器可不行. 由于无线开发需要配置UA,我使用chrome进行访问,但是今儿一早过来,发现fiddler无法抓取chrome的请求了. ...
随机推荐
- i合拍应用客户端安卓项目源码
i合拍是一款新型的拍照社交App它可以让你和朋友,亲人,陌生人合拍一张照片参与别人的合拍,体现自己的创意使用说明:使用了gpuimage进行滤镜渲染 实现远程合拍,分享合拍等一系列功能. 手机app下 ...
- YTBro Video 2016-07-30 Sat
明日天气:多云转阴,32~24度 运动向 健身 20中极致疯狂的俯卧撑,新手请勿尝试 跑酷 大神放大招,招招见血,不信你看 赛事 2016年世界室内田径锦标赛 男子4×400接力决赛 台球 RP集中爆 ...
- 聚合函数与SQL排序
聚合查询 通过SQL对数据进行某种操作或计算时需要使用函数(聚合函数,将多行汇为一行). 常用函数(5个): COUNT:计算表中的记录数(行数) SUM: 计算表中数值列中数据的合计值 AVG: 计 ...
- java操作Excel的poi 遍历一个工作簿
遍历一个工作簿 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.h ...
- Robot Framework(六)变量
变量 2.5.1简介 变量是Robot Framework的一个不可或缺的特性,它们可以在测试数据的大多数地方使用.最常见的是,它们用于测试用例表和关键字表中关键字的参数,但所有设置都允许在其值中使用 ...
- select和epoll最大的区别
先说说阻塞,因为一个线程只能处理一个套接字的I/O事件,如果想同时处理多个,可以利用非阻塞忙轮询的方式,伪代码如下: while true { for i in stream[] { if i has ...
- BZOJ 3012: [Usaco2012 Dec]First! 字典树 + tarjan
Code: #include<bits/stdc++.h> #define maxn 1000003 using namespace std; char str[maxn],strtot[ ...
- PAT_A1034#Head of a Gang
Source: PAT A1034 Head of a Gang (30 分) Description: One way that the police finds the head of a gan ...
- Proc、宿主变量、指示变量、数组变量、通信区sqlca,oraca ---(day07)
PROC 主要内容: ) proc简介 ) proc程序的开发过程 ) 宿主变量和指示变量 ) 嵌入sql语句 ) 连接数据库 ) 错误处理 ) 数据的存取更新操作 ) 动态sql --------- ...
- Noip 2013 练习
转圈游戏 传送门 Solution 快速幂 Code //By Menteur_Hxy #include <cstdio> #include <cstdlib> #includ ...