海运的博客

Selenium处理验证码

发布时间:September 20, 2015 // 分类:PHP,iMacros // No Comments

截取整个屏幕,获取验证码坐标及大小,然后再截取验证码:

<?php
$element = $webDriver->findElement(
  WebDriverBy::id('J-checkcode-img')
);
$element_width = $element->getSize()->getWidth();
$element_height = $element->getSize()->getHeight();
 
$element_src_x = $element->getLocation()->getX();
$element_src_y = $element->getLocation()->getY();
 
$webDriver->takeScreenshot('screenshot.png');
$src = \imagecreatefrompng('screenshot.png');
$dest = \imagecreatetruecolor($element_width, $element_height);
 
imagecopy($dest, $src, 0, 0, $element_src_x, $element_src_y, $element_width, $element_height);
imagepng($dest, './captcha.png');

iMacros使用Xpath采集示例

发布时间:July 24, 2013 // 分类:iMacros // 1 Comment

iimPlay("CODE:URL GOTO=http://baidurank.aizhan.com/baidu/115.com/position/") 
for (var i=1;i<27;i++)
{
iimSet("i",i);
var macro;
macro ="CODE: \n";
macro +="TAG XPATH=\"id('content')/div[1]/div[2]/div[4]/table/tbody/tr[{{i}}]/td[5]/a\" EXTRACT=HREF \n";
macro +="'PROMPT {{!EXTRACT}} \n";
macro +="'WAIT SECONDS=3 \n"
macro +="SAVEAS TYPE=EXTRACT FOLDER=R: FILE=test.csv \n";
iimPlay(macro);
}

推荐Firefo查看Xpath扩展:
XPath Checker:通过鼠标右键快速查看所在区域Xpath。
FirePath:Firebug的一个Xpath扩展,推荐。

iMacros读取和采集数据写入文件

发布时间:June 26, 2013 // 分类:iMacros // No Comments

读取CSV文件,按行和列读取:

'csv文件
SET !DATASOURCE Address.csv
'开始于第几行
SET !DATASOURCE_LINE {{!LOOP}}
'变量COL针对相应的列
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:fname CONTENT={{!COL1}}

采集网页数据并保存到CSV文件:

URL GOTO=http://www.baidu.com/
TAG POS=1 TYPE=A ATTR=HREF:http://baike.baidu.com EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}<SP>Ext.<Sp>
SET !EXTRACT NULL
TAG POS=1 TYPE=A ATTR=HREF:http://wenku.baidu.com EXTRACT=TXT
SET !VAR2 {{!EXTRACT}}
SET !EXTRACT NULL
ADD !EXTRACT {{!var1}}
ADD !EXTRACT {{!var2}}
SAVEAS TYPE=EXTRACT FOLDER=R: FILE=test.csv

iMacros采集参数:

TYPE:HTML标签
XPATH:和TYPE二选一
ATTR:标签属性,*表示所有,可用TXT(网页显示的文字),HREF,Class/ID名称
POS:第几个匹配
EXTRACT:采集数据类型,可选:TXT,HREF,HTM等

此内容被密码保护

发布时间:June 23, 2013 // 分类:iMacros // No Comments

请输入密码访问

iMacros实现LOOP循环

发布时间:June 20, 2013 // 分类:iMacros // No Comments

1.通过iMacros LOOP变量实循环,在运行处选择播放循环,从LOOP值到最大值。

VERSION BUILD=8300326 RECORDER=FX
TAB T=1
SET !ERRORIGNORE YES
SET !TIMEOUT_STEP 1
SET !LOOP 1
URL GOTO= http://www.haiyun.me

2.通过JS For循环:

for (var i=1;i<100;i++)
{
var macro;
macro ="CODE:"+"\n";
macro +="SET !TIMEOUT_STEP 1"+"\n";
macro +="URL GOTO=http://www.haiyun.me"+"\n";
//iimSet("i",i);
iimPlay(macro);
}

Firefox下有多个JS任务同时执行需以不同的配置文件/进程启动:

"C:\Program Files\Firefox\firefox.exe" -P -no-remote

JS错误处理:

try {
}
catch(e){
}
分类
最新文章
最近回复
  • track: NAT 部分没处理,这块感觉有问题。
  • yu: 查到有用的资料很幸福!
  • boscotsang: 请问下服务器端如何控制权限让通过权限认证的客户端才能连接?现在这样只要有自编译的客户端程序都可...
  • yck932: 大侠,请问哪里有 tunnels 详细参考资料,谢谢
  • bubble: 现在linux 4.9以上的内核有个bbr的参数,用这个bbr比用锐速效果更好,可参考我的博文...
  • wang: openwrt 只有 tmp/etc/miniupnpd.conf 修改后又重置了,其他路径找...
  • wbq: 可以了 只是https透明代理如何做呢?
  • wbq: 你的这个配置需要浏览器设置代理ip+port, 现在假设不设置,只配置客户端网关为Nginx那...
  • wbq: 您好,想用Nginx做个透明代理,客户端机器配置下网关(即Nginx那台机器),客户端dns配...
  • ccc: 可以提供易调用openssl常用函数吗?