Selenimu做爬虫 - oscarxie - 博客园
Selenimu做爬虫 - oscarxie - 博客园
Selenimu做爬虫前面有介绍过Selenium作为开源的自动化测试框架,其实Selenium还可以作为爬虫工具。
举个例子,我想爬取中国概念股的一些信息,例如这样的:http://app.finance.ifeng.com/list/usstock_cn.php
先建个SeleniumUtil.py的文件
代码
#!/usr/bin/python2.5.2
#-*- coding: utf8 -*-from selenium import selenium
class SeleniumUtil:
seleniums = {}
def StartSeleniumForUrl(self, url):
sel = selenium("localhost", 4444,"*chrome", url)
sel.start()
sel.set_timeout("90000")
return seldef GetSelenium(self, websiteName, url):
#if websiteName in self.seleniums:
# return self.seleniums[websiteName]
self.seleniums[websiteName] = self.StartSeleniumForUrl(url)
return self.seleniums[websiteName]
def StopSelenium(self, websiteName):
if websiteName in self.seleniums:
self.seleniums[websiteName].stop()复制代码接着写个IfengFinanceSite.py文件来爬取需要的信息,例子如下,
代码
#!/usr/bin/python2.4
# -*- coding: utf8 -*-#Ifeng Site
#import codecs,time
from SeleniumUtil import SeleniumUtilExchangeUrlMap = {
"CCS": "http://app.finance.ifeng.com/list/usstock_cn.php",
#"SHA_B": "http://stock.finance.sina.com.cn/stock/quote/shb%s.html",
}
ExchangeXPath = "//html/body/div[4]/div/div[2]/div/table/tbody/tr[%s]/td[1]"class IfengFinanceSite:
# result file for diff exchanges
def GetAllTickers(self, exchange, resultFiles):
sln = SeleniumUtil().GetSelenium("Ifeng", "http://app.finance.ifeng.com/")
myfile=codecs.open(resultFiles % exchange, 'w', 'utf-8')count = 0
sln.open(ExchangeUrlMap[exchange])
time.sleep(5)
for j in range(2, 200):
if sln.is_element_present(ExchangeXPath % j):
context = sln.get_text(ExchangeXPath % j).strip()
print >> myfile, context, '\r'
count = count + 1
else: break
print "%s companies for exchange %s recorded." % (count, exchange)
sln.stop()exchangelist=["CCS"] #"SHA_A","SHA_B","SHE_A","SHE_B","SHA_Q","SHA_CEF","SHE_CEF","SHA_Bond","SHE_Bond"
for exchange in exchangelist:
print exchange
resultFiles="Ifeng_company_list_%s.txt"
IfengFinanceSite().GetAllTickers(exchange, resultFiles)复制代码之后启动Selenium服务,调动浏览器就能获取所有中国概念股股票代码,如果还需要其他的信息如名称、价格,只需要取得Xpath就行了。
再扩展开就是可以用Selenium做diff工具了,前后版本的对比,自有产品与竞争对手信息的对比。
当然,Selenium RC因为要调出浏览器,所以效率还是很一般,可以考虑用Selenium其他产品。
Selenimu做爬虫 - oscarxie - 博客园相关推荐
- java 模拟登陆exe_Java简单模拟登陆和爬虫实例---博客园老牛大讲堂
鉴于有人说讲的不清楚,我这里再详细补充一下:更新日期:2017-11-23 本片文章适合初学者,只简单说了一下爬虫怎么用,和一个简单的小实例.不适合你的就可以不看了.----博客园老牛大讲堂 1.什么 ...
- [2017-08-31]如何使用ruby同步markdown博文到博客园
这两天折腾了一下用ruby通过MetaWeblog接口把本博客同步到博客园,特此记录. MetaWeblog MetaWeblog是一个专门关于博客的协议标准,通过xmlrpc,很简单的定义了新增.编 ...
- 【完全开源】博客园客户端UWP版(上篇)
目录 说明 PC截图 手机截图 关于源码 说明 这段时间一直在研究UWP开发,前段时间MS-UAP发布了淘宝UWP版,支持win10手机,看起来很叼.之后为了练手做了这个博客园客户端.目前只完成了一部 ...
- YY博客园UML用例图-活动图-状态图之博客模块
UML建模YY系列: YY博客园UML类图之博客模块 YY博客园UML时序图之博客模块 YY博客园UML用例图-活动图-状态图之博客模块 前面YY了博客园UML类图之博客模块和博客园UML时序图之博客 ...
- Python爬虫入门教程 54-100 博客园等博客网站自动评论器
爬虫背景 爬虫最核心的问题就是解决重复操作,当一件事情可以重复的进行的时候,就可以用爬虫来解决这个问题,今天要实现的一个基本需求是完成"博客园" 博客的自动评论,其实原理是非常简单 ...
- java 使用webmagic 爬虫框架爬取博客园数据
java 使用webmagic 爬虫框架爬取博客园数据存入数据库 学习记录 webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. ht ...
- 【Python爬虫】爬了七天七夜,终于爬出了博客园粉丝数排行榜!
文章发出不到30分钟就被首页下架了,默哀-- 起因 为了督促自己更加积极地写博客,我希望有一个排名系统能让我看到自己的进步.但是博客园对用户的排名体系相对是比较少的,主要是推荐博客排行和积分排行:但它 ...
- 『Python开发实战菜鸟教程』实战篇:爬虫快速入门——统计分析CSDN与博客园博客阅读数据
文章目录 0x01:引子 首先介绍一下网络爬虫是什么,可以用来做什么? 这里简单探讨一下网络爬虫的合法性 正式进入爬虫实战前,需要我们了解下网页结构 HTML CSS JScript 写一个简单的 H ...
- nodejs爬虫与python爬虫_【nodeJS爬虫】前端爬虫系列 -- 小爬「博客园」
写这篇 blog 其实一开始我是拒绝的,因为爬虫爬的就是cnblog博客园.搞不好编辑看到了就把我的账号给封了:). 言归正传,前端同学可能向来对爬虫不是很感冒,觉得爬虫需要用偏后端的语言,诸如 ph ...
最新文章
- C++多态的基本概念
- Dynamic Data Web Application编译是报GetActionPath调用模糊解决办法
- 用柠檬来发电真的可行吗?
- USACO-Section1.6 Prime Palindromes(素数和回文数)
- 响应式系统的依赖收集追踪原理
- Springboot java -jar 提示没没有主清单属性
- linux挂载VMFS硬盘,linux – ESX Guest中的硬件磁盘错误,在vmfs支持的驱动器上……这怎么可能?...
- 信息安全实验二、漏洞扫描与病毒防治
- 笔记本电脑插耳机后耳机无声音有外放情况,咋办??
- QQ号大规模被盗与你我有什么关系?你我该如何做?
- python用谷歌内核制作浏览器_用cef Python打造自己的浏览器
- qq离线linux,QQ For Linux 我哭了,官方版
- 《天天数学》连载62:三月二日
- Android音视频开发详解
- thinkpad linux win7,Thinkpad t440 Win7+ubuntu双系统
- C语言解一元高次方程代码,拜求大佬,这代码里面是什么意思,这是一个求一元高次方程的代码...
- php生成小学数学练习题
- 字段属性——唯一约束
- 2014蓝桥杯本科B组C/C++第四题【史丰收速算】
- Ubuntu16.04+CUDA8.0+cudnn v5.1+opencv3.1(2.4.10)+caffe+GTX 1080Ti 机器配置记录
热门文章
- mysql三高讲解(二):2.8 mysql视图相关概念
- eks volumn s3_和平精英:SMG战队无缘总决赛,S3前提退场原因一览
- 获取roi内的xld_提升ROI是王道,这几种推广获客渠道与形式你还不知道?
- linux内核工程导论,Linux内核工程导论——内存管理(3)
- 2019死磕java面试题_死磕 java同步系列之开篇
- java创建图片文件怎么打开_java 程序怎么打开一张图片?
- java 类型 装箱和拆箱
- vue 指令 v-for 遍历数组
- python 字符串方法
- opencv-api minEnclosingCircle