Liên kết Website

Học Imacros căn bản

Học Imacros căn bản
Mã hàng: Học Imacros căn bản
Trạng thái: Còn hàng
Giá: Liên hệ
Số lượng:  
   - Hoặc -   

Script không hoạt động tốt trên imacros 9.0.3

 
Chào các bạn :d lâu rồi mình mới viết bài cho blog.

Sau khi cập nhật lên 9.0.3 thì nhiều file .js cũ không hoạt động. Mình không biết là do lỗi hay có thay đổi gì nên các bạn muốn file javascript (.js) cũ vẫn hoạt động tốt thì remove bản imacros hiện tại và vào

https://addons.mozilla.org/vi/firefox/addon/imacros-for-firefox/versions/

Cài bản từ 8.9.7 trở xuống là chạy ngon lành.

Good Luck :)

 

12 tháng 11, 2015

Định dạng các kí tự ",\,... trong imacros

 
Bây giờ mình có 1 ví dụ như là:
 
Trường hợp 1:
Mình sử dụng lệnh SEARCH tìm một đoạn trên trang web có kí tự "
 
con"gna"lib
 
Mình muốn lấy gna trong đoạn trên
 
Nhưng nếu mình viết như thế này thì nó sẽ không hoạt động chính xác. 
 
SEARCH SOURCE=REGEXP:"con\"([^""]+)\"lib" EXTRACT=$1
 
Bởi imacros không thể hiểu được đâu là " bắt đầu và " kết thúc.
 
Để chạy được bạn cần thêm \ trước các kí tự ",\,..
 
SEARCH SOURCE=REGEXP:"\"([^""]+)\"" EXTRACT=$1
 
Trường hợp 2:
 
Mình có đoạn code trong *.iim và mình muốn chuyển nó qua javascript
 
Code iim:
 
SEARCH SOURCE=TXT:"GoogleAnalyticsObject"
 
và chuyển sang js là:
 
code="SEARCH SOURCE=TXT:\"GoogleAnalyticsObject\"";
iimPlayCode(code);
 
Cũng như giải thích ở trường hợp 1
 
Trường hợp 3:
 
Ở trường hợp 1 nó chỉ là chạy trên file *.iim mà thôi ! Và bạn muốn chuyển sang *.js. Bạn phải tiếp tục thêm \ vào các kí tự ",\,... kể cả đã được định dạng mới như \\,\",...
 
code="SEARCH SOURCE=REGEXP:\"con\\"([^\"\"]+)\\"lib\" EXTRACT=$1";
iimPlayCode(code);
 

20 tháng 9, 2015

Phần 2: Lập trình imacros với javascript *.js

 
Nền tảng của imacros cũng được viết bằng javascript. Dùng javascript viết code imacros thì bạn có thể làm được những công việc phức tạp, vĩ mô hơn mà lập trình trên *.iim không thể làm được
 
Lấy vị dụ như bạn muốn làm view trang A 10 lần xong chuyển qua view trang B 15 lần chẳng hạn. Javascript có cấu trúc giống C- ngôn ngữ lập trình căn bản nhất, bạn có thể tương tác với nhiều thứ trên firefox như add-on,...
 
Nhưng blog mình chỉ hướng tới đa số là người mới học và không có kiến thức về lập trình nên mình sẽ chỉ những điều căn bản đủ dùng với *.js cho các bạn. Những kiến thức này mình tham khảo bên sozi.vn
 
Bài 1:
Tạo 1 biến và gán code imacros(giống như là nhúng lệnh trên *.iim vào *.js vậy).
 
var a="CODE:URL GOTO=http://hocimacros.blogspot.com";
 
Sau đó chạy biến đó
 
iimPlay(a);\
 
Bài 2:
Lệnh nhúng file *.iim vào *.js và chạy nó
iimPlay("imacro.iim");
 
Điều kiện là cả file này phải nằm trong thư mục của imacros
 
Bài 3:
Lệnh cấu trúc lặp
for (var i=0;i<=100;i++){
}
 
Sau một lần lặp giá trị của i tăng thêm 1. Lệnh trên là lặp 100 lần. Bạn sửa thành số bạn muốn. Trong {} là lệnh thực thi với từng lần lặp.
 
Ví dụ: Truy cập hocimacros.blogspot.com 100 lần
 
var a="CODE:URL GOTO=http://hocimacros.blogspot.com";
for (var i=0;i<=100;i++){
iimPlay(a);
}
 
Hoặc là chạy file imacro.iim 100 lần
 
var a="CODE:URL GOTO=http://hocimacros.blogspot.com";
for (var i=0;i<=100;i++){
iimPlay("imacro.iim");
}
 
Bài 4: Hàm kiểm tra lỗi
iimGetErrorText();
 
Hàm này xem code chạy có lỗi không. Mình sẽ hướng dẫn ứng dụng nó ở bên dưới
 
Bài 5: Cầu trúc điều kiện if
Nó có ý nghĩa là "Nếu (so sánh) thì (điều kiện được đáp ứng thì chạy không thì dừng)
 
Nếu thêm else dưới nữa thì thay vì dừng nó sẽ chạy else
 
Ví dụ:
var a=0
if (a<1) {
iimPlay("imacro.iim");
}
 
Ví dụ: Với iimGetErrorText();
 
iimPlay("TAG POS=1 TYPE=INPUT:SUBMIT ATTR=NAME:view_post");
if(iimGetErrorText()=="OK"){ 
//Click được , không bị lỗi! 
iimPlayCode("làm việc khác....") ; 
}
else{
 //Không click được, lỗi 
iimPlayCode("làm việc khác....") ; 
}
 
Bài học phần 2 dừng tại đây. Lập trình javascript quá rộng nên mình không thể hướng dẫn hết được. Qua các bài học căn bản trên có vẻ đi quá tầm khả năng của newbie. Nếu các bạn không hiểu đoạn nào thì google hoặc bỏ qua cũng đc :D Đây cũng là bài học kết thúc các bài học lập trình imacros căn bản cho người mới. Mình sẽ cập nhật các code imacros trong kho imacros cho các bạn sử dụng !
 
Chúc các bạn thuận lợi trong công việc
 
 

Bài 6: SAVEAS Lệnh lưu thông tin,tập tin trên site vào máy

 
SAVEAS TYPE=(CPL|HTM|TXT|EXTRACT|PNG|JPEG) FOLDER=folder_name FILE=file_name
TYPE là kiểu dữ liệu:
  • CPL Lưu toàn bộ mã nguồn của trang we
  • HTM tương tự trên nhưng không có hình ảnh
  • TXT Chỉ có văn bản
  • EXTRACT Giá trị của !EXTRACT Được lưu ở định dạng CSV.Lưu ý: giá trị của EXTRACT biến được thiết lập lại sau khi kêu gọi "SAVEAS TYPE=EXTRACT"
  • PNG một ảnh chụp màn hình của trang web được lưu ở dạng PNG
  • JPEG như trên: một ảnh chụp màn hình của trang web được lưu ở dạng JPEG
 
FOLDER là thư mục lưu file
 
FILE là tên file
 
Ví dụ 1:
 
TAB T=1
URL GOTO=facebook.com
SAVEAS TYPE=CPL FOLDER=D:\ FILE=facebook
 
Code trên lưu toàn bộ hình ảnh,mã nguồn của facebook.com vào ổ D
 
Các bạn có thể thử với từng TYPE để hiểu hơn
 
Ví dụ 2:  EXTRACT
EXTRACT ở đây như một biến.Dùng để kết hợp với nhiều lệnh khác ví dụ bạn dùng lệnh khác tìm hay tạo ra giá trị nào đó và lưu nó vào EXTRACT. Sau đó thông qua EXTRACT thông tin đó được lưu vào máy
 
EXTRACT  kết hợp khá tốt với lệnh SEARCH và nhiều lệnh khác. Sử dụng lệnh SEARCH tìm thứ cần tìm và dùng SAVEAS TYPE=EXTRACT để lưu lại nó
 
Bây giờ mình có 1 link profile facebook của một bạn. Mình chuyển qua UID facebook thông qua trang http://findmyfbid.com/ và sau đấy tìm và lưu mã số UID facebook của mình vào file uidfacebook.txt nằm ở ổ D
 
TAB T=1
URL GOTO=http://findmyfbid.com/
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:url CONTENT=(Địa chỉ profile facebook của bạn)
TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Find<SP>numeric<SP>ID<SP>→
SEARCH SOURCE=REGEXP:"<code>([^']+)</code>" IGNORE_CASE=YES EXTRACT=$1
SAVEAS TYPE=EXTRACT FOLDER=D:\ FILE=uidfacebook.txt
 
Lệnh SEARCH bạn có thể tìm ở bài học trước nhé
 

19 tháng 9, 2015

Bài 5: !EVAL Lệnh tạo ra giá trị random

 
Đây là lệnh tạo ra 1 giá trị ngẫu nhiên. Lệnh này làm được khá nhiều việc lấy đơn giản nhất là giúp bạn khó bị nhận diện là robot...

SET !VAR1 EVAL("var min = n; var max = m; var randomNumber = Math.floor(Math.random() * (max - min + 1)) + min; randomNumber;")

Lệnh trên tạo ra biến có giá trị ngẫu nhiên từ n đến m. Ví dụ:

SET !VAR1 EVAL("var min = 50; var max = 100; var randomNumber = Math.floor(Math.random() * (max - min + 1)) + min; randomNumber;")
TAB T=1
URL=whoer.net
WAIT SECONDS={{!VAR1}}

Truy cập vào trang whoer.net và chờ random từ 50-100 giây
 

Bài 4 : SEARCH Lệnh lấy thông tin trong 1 site

 
Đây là một lệnh hỗ trợ bạn lấy thông tin ! bạn có thể làm 1 auto get info,...


SEARCH SOURCE=TXT hoặc REGEXP:"Nhận dạng dữ liệu cần lấy" IGNORE_CASE=YES EXTRACT=$1


EXTRACT trong đây đóng vai trò như 1 nơi lưu giữ thông tin tạm thời và $1 chính là thông tin.


Ví dụ:
Mình có 1 địa chỉ profile facebook của 1 bạn và mình cần lấy UID facebook của bạn đấy. Có 1 trang hỗ trợ chuyển URL profile facebook sang UID facebook.
Trang findmyfacebookid.com hỗ trợ làm việc này và mình chỉ cần post URL profile facebook vào và nhấn Find numeric ID là hiển thị UID của URL profile đấy.


Và lệnh SEARCH có vai trò nhận dạng ra vị trí của dãy số UID.


Bạn nhấn view page source ở trang hiển thị UID để xem vị trí nó nằm trong đống code như thế nào. Bạn có thể sử dụng Ctrl + F và paste vào thông tin cần tìm như mã UID hiển thị trang trang.


và mình tìm thấy UID của mình với các dòng code xung quanh
<code>100005640430xxx</code>
Vậy là có thể tìm cách để nhận diện ra vị trí của mã UID facebook rồi


Ta có code sau:


SEARCH SOURCE=REGEXP:"<code>([^><]+)</code>" IGNORE_CASE=YES EXTRACT=$1

([^><]+) có tác dụng là nhận dạng những gì ở giữa 2 <code></code> và lưu vào $1

Lưu ý: Định dạng ([^*]+) Dấu * chứa 2 kí tự bên cạnh ([^*]+).

Bây giờ bạn chạy thử đoạn code này xem UID profile facebook của bạn là gì nhé:


TAB T=1 URL GOTO=http://findmyfbid.com/ TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:url CONTENT=(Địa chỉ profile facebook của bạn)
TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Find<SP>numeric<SP>ID<SP>→
SEARCH SOURCE=(REGEXP):"<code>([^><]+)</code>" IGNORE_CASE=YES EXTRACT=$1
 
 

Bài 3: Lệnh cấu trúc dữ liệu imacros

 
Bao gồm:
  1. !DATASOURCE
  2. !DATASOURCE_COLUMNS
  3. !DATASOURCE_LINE
  4. !COLn
Các lệnh này thường đi kèm với nhau trong 1 file imacros.
Bạn có 1 file chứa list sock,hay list account và bạn muốn làm 1 gì đấy với mỗi con(hết con này xong đổi con khac)
 
SET !DATASOURCE (Địa chỉ file ở đây)
SET !DATASOURCE_COLUMNS {{LOOP}}
SET !DATASOURCE_LINE (Khải báo số cột sử dụng ở đây)
 
!COLn (n là giá trị ở cột thứ mấy)
 
SET !DATASOURCE_COLUMNS {{LOOP}} có ý nghĩa là lấy giá trị hàng n ở lần lặp n
 
Ví dụ: Mình có list 10 acc ở vozforums.com và mình muốn login acc này xong thoát ra và lặp lại 9 lần nữa. Mình có file list.csv(file excel) ở ổ D: chứa 10 account gồm username ở cột 1 và password ở cột 2
 
SET !DATASOURCE D:\list.csv
SET !DATASOURCE_LINE {{!LOOP}}
SET !DATASOURCE_COLUMNS 2
TAB T=1
URL GOTO=https://vozforums.com/
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:login.php?do=login ATTR=ID:navbar_username CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:login.php?do=login ATTR=ID:navbar_password CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:login.php?do=login ATTR=*
CLEAR
Và mình chạy play(loop) 10 lần
 
Giải thích:
SET !DATASOURCE D:\list.csv - Khai báo địa chỉ file
SET !DATASOURCE_LINE {{!LOOP}}
SET !DATASOURCE_COLUMNS 2 Khai báo số cột
TAB T=1
URL GOTO=https://vozforums.com/ Truy cập trang vozforums
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:login.php?do=login ATTR=ID:navbar_username CONTENT={{!COL1}} Nhập vào ô username,bạn thấy {{!COL1}} chứ, nó là giá trị ở cột 1 dòng (số lần lặp hiện tại.Ví dụ đang ở lần lặp 2 thì nó lấy ở hàng 2)
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:login.php?do=login ATTR=ID:navbar_password CONTENT={{!COL2}} Đây cột 2 và cũng tương tự như trên
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:login.php?do=login ATTR=* Ấn nút login
CLEAR xóa sạch cookiem,data trình duyệt
 

Bài 2: Các lệnh thiết lập cho imacros

 
Trong bài này mình sẽ dạy các lệnh sau:


  1. !ERRORIGNORE
  2. !URLCURRENT
  3. !USERAGENT
  4. !TIMEOUT 
  5. !TIMEOUT_STEP
  6. !REPLAYSPEED
SET !ERRORIGNORE YES
Ví dụ: Code bạn đang chạy tới code nhấn nút like facebook. Và fanpage đó không có nút like và lệnh này không được thực thi -> imacros bị dừng
 
Để imacros không bị dừng bạn thêm SET !ERRORIGNORE YES vào đầu file *.iim thì nếu code đấy không thực thi -> imacros sẽ bỏ qua và chạy các code tiếp theo
 
!URLCURRENT
Lệnh này có nghĩa là URL trên tab hiện tại
Ví dụ:
TAB T=1
SET !VAR1 {{!URLCURRENT}}
TAB OPEN
TAB T=2
URL GOTO={{!VAR1}}
 
Giải thích: Ở tab 1 mình đã đặt biến !VAR1 là URL của tab 1, sau đó mở tab 2 và truy cập URL trong giá trí !VAR1(URL của tab 1).Có nghĩa là mình sao chép URL tab 1 sang tab 2
 
SET !USERAGENT "useragent của máy"
Lệnh này fake useragent cho trình duyệt của bạn
 
SET !TIMEOUT n
Bạn truy cập vào 1 trang web và trang web ấy load rất lâu. Lệnh này đặt ra thời gian tối đa được load cho trang đấy ! Hết thời gian nó sẽ tiếp tục các code tiếp theo. Đơn vị n là giây
 
SET !TIMEOUT_STEP n
Có 1 code click vào nút like chẳng hạn. Nhưng nút like đấy không tồn tại và code này đang phải tìm nút đấy. mặc định của lệnh này là 1/10 của lệnh SET !TIMEOUT. Đây là lệnh đặt thời gian tối đa có đơn vị là giây
 
!REPLAYSPEED
Tốc độ của imacros ! lệnh này không quan trọng
 

Bài 1 - Các lệnh căn bản trên imacros

 
Các lệnh căn bản nhất mình dạy trong bài học này gồm:

  1. TAB
  2. TAG
  3. URL
  4. WAIT
  5. REFRESH
  6. BACK
  7. CLEAR
  8. SET\
  9. ADD
  10. LOOP
  11. CLICK
TAB bao gồm các lệnh:

  1. TAB OPEN: Mở thêm 1 tab mới
  2. TAB T=n: Nhảy tới tab số n. Thay n bằng số. Lưu ý là nếu bạn chỉ có 2 tab đang mở thì không thể nhảy tới tab số 3
  3. TAB CLOSE: Đóng tab hiện tại
  4. TAB CLOSEALLTHERS: Đóng tất cả các tab khác trừ tab hiện tại
TAG có cấu trúc như sau:
TAG POS=n TYPE=type [FORM=form] ATTR=attr [CONTENT=some_content]
Về lệnh này các bạn nên lấy bằng chế độ record. Nó có tác dụng là click vào một cái gì đấy,click vào một nút có nội dung ... chẳng hạn
 
URL
URL GOTO=Link trang web
URL GOTO=https://www,hocimacros.blogspot.com hay URL GOTO=hocimacros.blogspot.com đều được cả
 
WAIT
WAIT SECONDS=n Chờ n giây.Thay n bằng một số nào đấy
 
REFRESH
Chỉ đơn giản là làm mới lại trang giống nút F5 mà thôi
 
BACK
Quay lại trang trước\
 
CLEAR
Xóa sạch cookie,data trình duyệt
 
SET
Đặt giá trị cho 1 biến
Ví dụ:
SET !VAR1 90
và sau đấy chúng ta có thể mang biến này đi sử dụng kết hợp với các lệnh khác
WAIT SECONDS={{VAR1}}
 
ADD
Thêm giá trị cho 1 biến nào đấy
Ví dụ giá trị !VAR1 vừa rồi có giá trị là 90
ADD !VAR1 20
Thêm giá trị 20 vào biến !VAR1 và giá trị hiện tại của VAR1 là 110
 
LOOP
Đây là lệnh lặp. Cách ứng dụng đơn giản nhất là đặt SET !LOOP -100 ở cuôi file *.iim thì nó có nghĩa là chạy lặp 100 lần nhưng không chính xác là 100 lần. Nên sử dụng chính xác số lần lặp với file *.iim các bạn nên sử dụng chức năng Play(loop)
 
Sau đây sẽ có một số code với file *.iim để các bạn hiểu hơn các lệnh vừa học
 
Ví dụ 1: Căn bản nhất
TAB T=1
URL GOTO=hocimacros.blogspot.com
WAIT SECONDS=20
URL GOTO=whoer.net
WAIT SECONDS=10
CLEAR
 
Giải thích: Truy cập hocimacros.blogspot.com -> chờ 20 giây -> Truy cập whoer.net -> Chờ 10 giây -> Xóa cookie,data
 
Ví dụ 2: Bài học với biến !VAR1 và !VAR2
TAB T=1
SET !VAR1 20
SET !VAR2 15
URL GOTO=hocimacros.blogspot.com
REFRESH
WAIT SECONDS={{VAR1}}
URL GOTO=whoer.net
WAIT SECONDS={{VAR2}}
ADD !VAR1 5
URL GOTO=hocimacros.blogspot.com
WAIT SECONDS={{VAR1}}
BACK
CLEAR
SET !LOOP -100
 
Giải thích: Đặt !VAR1 có giá trị 20 !VAR2 giá trị 15 -> Truy cập hocimacros.blogspot.com -> Làm mới trang -> Chờ 20 giây -> truy cập whoer.net -> chờ 15 giây -> Thêm giá trị 5 vào biến !VAR1 -> truy cập hocimacros.blogspot.com -> chờ 25 giây -> quay lại trang trước(whoer.net) -> xóa cookie,data -> Tiếp tục lặp lại với 100 lần

CLICK X=n Y=m

CLICK vào một vị trí có tọa độ X/Y trên trang web
 

Danh sách tổng hợp các lệnh imacros

 
Cac bạn nhấn vào link dẫn đến bài viết để hiểu cặn kẽ hơn về các lệnh nhé
 
Các lệnh đơn
  1. ADD Bài 1 - Thêm giá trị vào 1 biến
  2. BACK Bài 1 - Lùi lại
  3. CLEAR 
Sản phẩm ngẫu nhiên