海运的博客

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= https://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=https://www.haiyun.me"+"\n";
//iimSet("i",i);
iimPlay(macro);
}

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

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

JS错误处理:

try {
}
catch(e){
}
分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...