สอนใช้งาน iMacros : ตอนที่ 3 การทำซ้ำโดยนำเข้าข้อมูลจาก CSV

ในบทความสอนใช้งาน iMacros ตอนที่ 1 และตอนที่ 2 ได้นำเสนอการติดตั้ง iMacros, การสร้าง Macro โดยการ RECORD, ตัวอย่างscript และ command ที่สำคัญใน Macro, การแก้ไข Macro และการนำเข้า Macro จากภายนอก

สอน iMacros import CSV สอนใช้ imacro Macros  

สำหรับบทความนี้จะนำเสนอการเรียกใช้ข้อมูลจากไฟล์ CSV ซึ่งจะช่วยเพิ่มประสิทธิภาพให้ Macro ทำงานกับข้อมูลที่อยู่ในรูปเมตริกซ์ หรือข้อมูลที่สามารถจัดให้อยู่ในรูปของตารางที่มีหลายแถวหลายหลักได้ง่ายขึ้น 

ในบทความนี้ผมจะนำเสนอในประเด็นต่าง ๆ ดังนี้
1. ไฟล์ CSV เป็นอย่างไร?
2. สร้างไฟล์ CSV อย่างไร? 
3. หลักการ Import ไฟล์ CSV เข้ามาใน Macro ทำอย่างไร? 
4. Command ที่ทำให้ Macro เรียกใช้ข้อมูลจาก CSV ไฟล์คือ? 
5. ตัวอย่างสร้าง Macro ให้เรียกใช้ CSV ไฟล์ ในกรณีที่แต่ละ Webpage มีส่วน Input ข้อมูลคล้ายคลึงกัน 
6. ตัวอย่างสร้าง Macro ให้เรียกใช้ CSV ไฟล์ ในกรณีที่แต่ละ Webpage ไม่เหมือนกันแต่ข้อมูลที่เราใช้ Input เหมือนกัน


ไฟล์ CSV เป็นอย่างไร?

CSV (Comma Separated Values) เป็นไฟล์ในรูปแบบที่แต่ละค่าในไฟล์ถูกคั่นด้วยเครื่องหมายจุลภาคสามารถสร้างและแก้ไขได้ใน MS Excel หรือ โปรแกรมประเภท Text Editor เช่น Wordpad หรือ Notepad เป็นต้น และยังสามารถนำมาใช้งานได้กับ iMacros

วิธี import CSV ไฟล์ใน iMacros วิธีใช้  iMacro 


สร้างไฟล์ CSV อย่างไร?

การสร้าง CSV ไฟล์แนะนำให้ทำวิธีใดวิธีหนึ่งต่อไปนี้

1 การสร้างไฟล์ CSV โดยใช้ Wordpad หรือ Notepad 
การสร้าง CSV ไฟล์โดยใช้ Wordpad หรือ Notepad เป็นวิธีที่ง่ายที่สุดซึ่งทำโดย
1.1 เปิด Wordpad หรือ Notepad ขึ้นมา
1.2 พิมพ์ข้อมูลลงไปโดยแต่ละข้อมูลจะต้องคั่นด้วยเครื่องหมายจุลภาค (,) และจะนับแต่ละบรรทัดเป็นข้อมูล 1 ชุด
เช่น ในที่นี้ผมพิมพ์ข้อมูล 2 ชุดนี้ลงไปใน Wordpad หรือ Notepad 

สอนทำ Blogger SEO Facebook ใช้งาน iMacros 
ก็จะได้ข้อมูลคือ ชื่อ email และ URL 2 ชุดที่ต่างกัน

1.3 บันทึกแฟ้มเป็นไฟล์ชื่อใดก็ได้ และให้ใส่นามสกุลเป็น .csv

Blogspot สอนแต่งบล็อก การทำบล็อก วิธีเขียนบล็อก 

2 การสร้างไฟล์ CSV โดยใช้ Ms Excel
2.1 นำข้อมูลที่ต้องการไปใส่ใน row หรือ column ตามความต้องการ โดยคุณสามารถคัดลอกข้อมูลจาก Notepad มาวางก็ได้
2.2 ในการบันทึกข้อมูลให้เลือกชนิดที่บันทึกเป็น CSV (MS-DOS) (*.csv)

สอนทำ SEO เครื่องมือการทำ SEO  

หลักการ Import ไฟล์ CSV เข้ามาใน Macro ทำอย่างไร?

ถ้าผมต้องการกรอกข้อมูลชุดเดียวคือ ชื่อ, password, email และ URL บน 100 Webpage ผมก็นำ 100 Webpage นั้นไปสร้างเป็นชุดข้อมูลในไฟล์ CSV จากนั้นสร้าง Macro ขึ้นมา 1 Macro เท่านั้น ซึ่ง Macro นี้จะเรียกข้อมูลจาก ไฟล์ CSV มาคราวละ Webpage และสั่งให้ Macro ทำซ้ำจนครบ 100 Webpage  ซึ่งจะเห็นว่าการใช้วิธีนี้ก็สามารถทำงานได้สำเร็จโดยไม่ต้องสร้าง Macro ขึ้นมาถึง 100 Macro เลย

Command ที่ทำให้ Macro เรียกใช้ข้อมูลจาก CSV ไฟล์คือ?

การเขียน Script และ Command ให้ Macro ทำได้โดยใช้คำสั่งที่ได้แนะนำไปในบทความ สอนใช้งาน iMacros : ตอนที่ 2 Scripts และ Commands ซึ่งขอยกมาทบทวนอีกครั้งดังนี้

Command ที่ใช้ในการเรียกใช้ไฟล์ .csv
CMDLINE !DATASOURCE ชื่อไฟล์.csv
หรือ 
SET !DATASOURCE ชื่อไฟล์.csv
หรือกรณีวางไฟล์เอาไว้นอก Folder Datasources เช่นวางไว้ที่ Drive D ก็ใช้คำสั่ง 
SET !DATASOURCE D:\ชื่อไฟล์.csv


Command ที่เกี่ยวข้องกับการเรียกใช้งาน ไฟล์ .csv จาก Datasourse 

Command ที่กำหนดการเรียกใช้ข้อมูลจาก Column ที่ 1 ถึง 3 
SET !DATASOURCE_COLUMNS 3
เลข 3 คือจำนวน Column ที่เราจะเรียกใช้ข้อมูลอาจจะกำหนดเป็น 1 หรือ 9 หรือเลขอื่น ๆ ก็ได้ขึ้นอยู่กับข้อมูลนำเข้า

Command ที่กำหนดให้ทำซ้ำโดยใช้แต่ละแถวตัวแบ่งการดำเนินการแต่ละรอบของ LOOP 
SET !DATASOURCE_LINE {{!LOOP}}

Command ที่กำหนดว่าการทำงานแบบ LOOP นั้นจะทำซ้ำตั้งแต่แถวใดในไฟล์ .csv จาก Datasourse 
SET !LOOP 1
ถ้าใส่เลข 1 ก็แปลว่าเริ่มทำซ้ำจากบรรทัดที่ 1 

จากข้างต้นที่กล่าวมาสามารถเขียนรวมกันได้เป็น
SET !DATASOURCE ชื่อไฟล์.csv
SET !DATASOURCE_COLUMNS 3
SET !DATASOURCE_LINE {{!LOOP}}
SET !LOOP 1
และโค้ดข้างต้นนี้สามารถเอาประยุกต์กับ Macro ที่มีการเรียกใช้ CSV ไฟล์ได้เลย 


ตัวอย่างที่ 1 ขั้นตอนการสร้าง Macro ให้เรียกใช้ CSV ไฟล์ :

ในกรณีที่แต่ละ Webpage มีส่วน Input ข้อมูลคล้ายคลึงกัน


ในที่นี้ผมขอยกตัวอย่างการสมัครสมาชิกเว็บ Pligg ของต่างประเทศจำนวน 12 แห่งด้วย iMacros ซึ่งสามารถประยุกต์ใช้ตามขั้นตอนดังนี้

ขั้นที่ 1 สร้าง Macro โดยใช้วิธีการบันทึก 
โดยขั้นแรกจะต้องพิจารณาว่าในการสมัครสมาชิกเว็บ Pligg แต่ละแห่งจะต้องกรอกข้อมูลใดบ้าง ซึ่งทำได้โดยวิธีทดลองกรอกข้อมูลจริงและใช้วิธี RECORD เอาไว้

เช่น ในที่นี้ผมไปสมัครสมาชิกที่ 
http://www.hotscripts.ro/
และทำการ Record การกรอกข้อมูลบน Webpage เอาไว้ได้ดังนี้

Submit ด้วย iMacros Auto Submit 

โค้ดที่ได้
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1      
URL GOTO=http://www.hotscripts.ro/       TAG POS=1 TYPE=A ATTR=TXT:Register      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:reg_username CONTENT= username      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:reg_email CONTENT=email      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register/ ATTR=ID:reg_password CONTENT=password      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register/ ATTR=ID:reg_verify CONTENT=password      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:recaptcha_response_field CONTENT=Lordmarams      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser
จากนั้นผมก็ใช้วิธีเดียวกันบันทึกข้อมูลในการสมัครเว็บ Pligg อีกแห่งซึ่งได้โค้ดดังนี้
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1      
URL GOTO=http://www.englishdigg.com/      
TAG POS=1 TYPE=A ATTR=TXT:Register      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register ATTR=ID:reg_username CONTENT=username      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register ATTR=ID:reg_email CONTENT=email      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register ATTR=ID:reg_password CONTENT=password      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register ATTR=ID:reg_verify CONTENT=password      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register ATTR=ID:recaptcha_response_field CONTENT=cautdoupaet      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser

หมายเหตุ โค้ดสีแดงคือข้อมูลส่วนตัวของแต่ละคนที่ใช้ต่างกัน 


ขั้นที่ 2 วิเคราะห์ Macro ที่ได้เพื่อดูความเหมือนและความแตกต่าง
จากโค้ดในขั้นที่ 1 จะเห็นว่าWebpage ของ Pligg ที่เราทำการสมัครสามารถใช้ข้อมูลในการสมัครชุดเดียวกันได้ 

ข้อมูลที่ใช้กรอกเหมือนกัน
ได้แก่ username, email และ password

ส่วนข้อมูลที่ใช้ต่างกัน
ได้แก่ URL ของเว็บ Pligg และ รหัส Captcha ซึ่งรหัส Captcha นั้นได้มาจากการสุ่มจึงเป็นไปได้ยากที่จะเหมือนกัน 

ขั้นที่ 3 ดัดแปลง Macro ให้สามารถใช้ได้กับทุก Webpage (ของ Pligg แห่งอื่น ๆ)
จากขั้นที่ 2 ผมจึงทำการกำหนด username, email และ password เป็นตัวแปรซึ่งมี 3 ค่าพอดี ส่วนการกรอก Captcha ผมจะใช้วิธีหยุดรอเพื่อให้ผู้สมัครกรอกเองแล้วสั่งให้ Macro ทำงานต่อ ซึ่งโค้ดที่ได้เป็นดังนี้
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1
SET !VAR1 username           SET !VAR2 email          
SET !VAR3 password
URL GOTO=http://www.hotscripts.ro/      
TAG POS=1 TYPE=A ATTR=TXT:Register      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_username CONTENT={{!VAR1}}TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_email CONTENT={{!VAR2}}      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_password CONTENT={{!VAR3}}
SET !ENCRYPTION NO     
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_verify CONTENT={{!VAR3}}
pause
'หยุดเพื่อกรอก Captcha และกด Continue       TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser

โปรดสังเกตว่า
* Macro ด้านบนยังคงใช้ได้กับ hotscripts.ro เพียงแห่งเดียว 
* ผมได้แทนที่ TAG ที่เป็นขั้นตอนการกรอก Captcha ด้วย คำสั่ง pause เพื่อให้เรากรอกด้วยตนเอง
* ผมใช้โค้ด FORM=ACTION: * แทน FORM=ACTION: /register  เพื่อป้องกันความผิดพลาดในการกรอก Form   

ขั้นที่ 4 สร้างไฟล์ CSV  
สมมติว่า ผมต้องการใช้ Macro ที่สร้างนี้ใช้ได้กับรายชื่อเว็บ Pligg ด้านล่าง (คุณสามารถเพิ่ม URL ของ Pligg ได้ตามต้องการ)
http://www.hotscripts.ro 
http://bookmarknews.com 
http://www.opineaboutme.com 
http://www.hubstory.com 
http://indelve.com 
http://clipbookmarks.com 
http://www.englishdigg.com 
http://www.biqboq.com 
http://www.trackerz.com 
http://www.indexhit.com 
http://www.socialmedia1.com
http://www.sgbuzz.com
ในขั้นนี้นี่เองที่เราจำเป็นต้องใช้ไฟล์ CSV เข้ามาช่วย ซึ่งทำโดย

4.1 สร้างไฟล์ CSV ตามที่ได้สอนไปแล้วข้างต้นโดยให้ และแถวแทน URL ของ Pligg แต่ละแห่งและตั้งชื่อไฟล์ว่าPliggreg.csv

วิธีนำเข้า CSV ไฟล์ใน iMacros 

4.2 คัดลอกไฟล์ Pliggreg.csv ไปวางไว้ใน Folder Datasources ใน  C:\Documents and Settings\All Users\My Documents\iMacros

สร้าง loop ใน iMacros 


ขั้นที่ 5 เรียกใช้ ไฟล์ CSV เพื่อทำให้ Macro ใช้ได้กับ Pligg แห่งอื่น ๆ
เมื่อสร้าง Pliggreg.csv และวางใน Folder ที่ระบุแล้วต่อไปเราจะแก้ไข Macro อีกครั้งเพื่อให้ Macro ดึงข้อมูลจากPliggreg.csv  มาทำซ้ำซึ่งทำได้โดยการเพิ่มชุดโค้ดต่อไปนี้เข้าไปในโค้ดของขั้นที่ 3
SET !DATASOURCE Pliggreg.csv
SET !DATASOURCE_COLUMNS 1
SET !DATASOURCE_LINE {{!LOOP}}
SET !LOOP 1
และได้โค้ดที่แก้ไขแล้วเป็น
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1
SET !DATASOURCE Pliggreg.csv
SET !DATASOURCE_COLUMNS 1
SET !DATASOURCE_LINE {{!LOOP}}
SET !LOOP 1
SET !VAR1 username           SET !VAR2 email          
SET !VAR3 password 
URL GOTO={{!COL1}}      
TAG POS=1 TYPE=A ATTR=TXT:Register      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_username CONTENT={{!VAR1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_email CONTENT={{!VAR2}}      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_password CONTENT={{!VAR3}}
SET !ENCRYPTION NO     
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_verify CONTENT={{!VAR3}}
pause
'หยุดเพื่อกรอก Captcha และกด Continue       TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser

ขั้นที่ 6 ตรวจสอบการทำงานของ Macro หรือปรับปรุงให้มีประสิทธิภาพสูงสุด
ในที่นี้ผมจะเพิ่มโค้ด
SET !ERRORIGNORE YES 
SET !ERRORCONTINUE YES
และ
SET !TIMEOUT_STEP 3 
SET !TIMEOUT_TAG 3
โดยเราเพิ่มเข้าไปเพื่อไม่ให้ Macro หยุดทำงานกระทันหันเมื่อมีบางเว็บเกิด Error และใส่เพื่อให้ Macro ทำงานแต่ละขั้นตอนเร็วขึ้น ทำให้โค้ดในขั้นที่ 5 ดัดแปลงเป็น
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1
SET !ERRORIGNORE YES        
SET !ERRORCONTINUE YES
SET !TIMEOUT_STEP 3        
SET !TIMEOUT_TAG 3
SET !DATASOURCE Pliggreg.csv
SET !DATASOURCE_COLUMNS 1
SET !DATASOURCE_LINE {{!LOOP}}
SET !LOOP 1
SET !VAR1 username           SET !VAR2 email          
SET !VAR3 password 
URL GOTO={{!COL1}}      
TAG POS=1 TYPE=A ATTR=TXT:Register      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_username CONTENT={{!VAR1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_email CONTENT={{!VAR2}}      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_password CONTENT={{!VAR3}} 
SET !ENCRYPTION NO     
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_verify CONTENT={{!VAR3}}
pause
'หยุดเพื่อกรอก Captcha และกด Continue       TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser

ถึงขั้นนี้โค้ดที่สร้างขึ้นก็สามารถนำไปใช้ได้จริง ซึ่งคุณอาจจะทดลองทำตามหรือนำโค้ดที่สำเร็จแล้วไปลองใช้งานดู  

ขั้นที่ 7 การนำ Macro ที่สร้างไปใช้งาน 
7.1 ให้คุณศึกษาวิธีนำเข้า Macro  จากตอนท้ายของบทความ สอนใช้งาน iMacros : ตอนที่ 2 Scripts และ Commands
7.2 ในการสั่งให้ Macro ทำงาน ให้กด Play (Loop) และในที่นี้ให้ตั้งค่า Loop เป็น 12 (เพราะมี 12 เว็บ Pligg)

ใช้งาน csv ใน macro iMacros    

สิ่งที่สำคัญในตัวอย่างนี้คือหลักการสร้าง Macro ไม่ใช่หลักการสร้าง Macro เพื่อลงทะเบียน Pligg ดังนั้นถ้าคุณสามารถทำความเข้าใจขั้นตอนการสร้าง Macro จากตัวอย่างข้างต้นได้ คุณก็จะสามารถประยุกต์แนวทางนี้ไปใช้กับงานอื่น ๆ ได้อีกมากมาย 



ตัวอย่างที่ 2 วิธีสร้าง Macro ให้เรียกใช้ CSV ไฟล์ :

ในกรณีที่แต่ละ Webpage ไม่เหมือนกัน แต่ข้อมูลที่เราใช้ Input เหมือนกัน


ในตัวอย่างที่กล่าวมาแล้วเป็นกรณีที่ Webpage การลงทะเบียนของเว็บ Pligg นั้นเหมือนกันสำหรับตัวอย่างนี้ผมจะยกตัวอย่างการสร้าง Macro และ CSV ในกรณีที่ Webpage ที่เราต้องการดำเนินการนั้นไม่เหมือนกัน แต่ข้อมูลที่เราใช้กรอกแบบฟอร์มบน Webpage นั้นเหมือนกัน เช่น

สมมติว่าผมต้องการนำข้อมูลข้างบนนี้ไป Submit หรือลงทะเบียนกับ
http://www.yahoo.com
http://www.blinklist.com
http://www.bofunk.com
ข้อมูลที่ผมต้องการใช้กรอกในแต่ละแห่งนั้นค่อนข้างแตกต่างกันมาก ผมจึงพิจารณาว่าข้อมูลที่เกี่ยวข้องกับการสมัครตามที่ต่าง ๆ นั้นจะต้องมีอะไรบ้าง ซึ่งรวมแล้วมี 18 อย่างได้แก่ 
Username,FirstName,LastName,E-mail,Full Name,Password,URL,Tags,Phone,Adress,City,State/Province,Postal Code,Country,html code,BB code,BB code2,Description
ผมจึงสร้างไฟล์ CSV ที่มี 1 แถว 18 คอลัมน์ และตั้งชื่อว่า Mysubmit.csv โดยแต่ละคอลัมน์เป็นข้อมูลที่ใช้ Submit ลงทะเบียน หรือ Login เป็นประจำ  ซึ่งเมื่อสร้างเสร็จจะได้ผลลัพธ์ดังตัวอย่างโค้ดด้านล่าง
Hackublog,Hackublog,Sun,hackublog@ymail.com,Hackublog Sun,xxxxxxxx,http://www.hackublog.com,Blogger SEO Facebook Tutorials,662-2222222,206 BKK,Bangkoknoi,Bangkok,10700,Thai,Blogger SEO Facebook Tutorials,[link=http://www.hackublog.com]Blogger SEO Facebook Tutorials[/link],[url=http://www.hackublog.com]Blogger SEO Facebook Tutorials[/url],BloggerSEO FacebookTutorials

Datasource จาก CSV ใน iMacros

เหตุผลที่ผมสร้างหลายคอลัมน์ก็เพื่อให้สามารถใช้ไฟล์ Mysubmit.csv ในกรณีอื่น ๆ ได้อีกหลาย ๆ แห่งและอีกหลายกรณี

ขั้นต่อมาผมได้ลองสมัครสมาชิกและได้บันทึกการลงทะเบียนของทั้ง 3 แห่งเอาไว้ จากนั้นทำการดัดแปลงโค้ดของ Macro โดยใช้วิธีเดียวกับตัวอย่างข้างบนที่ได้ทำให้ดูไปแล้ว (ขอละการอธิบาย) และสุดท้ายได้โค้ดของการลงทะเบียนทั้ง 3 แห่งออกมาเป็น

'001     
VERSION BUILD=6650406 RECORDER=FX      
TAB T=1      
TAB CLOSEALLOTHERS      
SET !EXTRACT NULL      
SET !ERRORIGNORE YES      
SET !EXTRACT_TEST_POPUP NO      
SET !ERRORCONTINUE YES      
SET !DATASOURCE Mysubmit.csv      
SET !DATASOURCE_COLUMNS 20      
URL GOTO=http://www.yahoo.com      
TAG POS=1 TYPE=A ATTR=TXT:Newhere?SignUp      
WAIT SECONDS=2      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:firstname CONTENT={{!COL2}}       TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:secondname CONTENT={{!COL3}}      
TAG POS=1 TYPE=SELECT FORM=NAME:regFormBody ATTR=ID:gender CONTENT=%m      
TAG POS=1 TYPE=SELECT FORM=NAME:regFormBody ATTR=ID:mm CONTENT=%7      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:dd CONTENT=7      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:yyyy CONTENT=1980      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:postalcode CONTENT={{!COL13}}      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:yahooid CONTENT={{!COL1}}      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:regFormBody ATTR=ID:password CONTENT={{!COL6}}      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:regFormBody ATTR=ID:passwordconfirm CONTENT={{!COL6}}      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:altemail CONTENT={{!COL4}}
TAG POS=1 TYPE=SELECT FORM=NAME:regFormBody ATTR=ID:secquestion CONTENT=%custom     
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:customsecquestion1 CONTENT=Father'sFullName      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:secquestionanswer CONTENT=MichaelTomoJones      
TAG POS=1 TYPE=SELECT FORM=NAME:regFormBody ATTR=ID:secquestion2 CONTENT=%custom      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:customsecquestion2 CONTENT=PlaceIWasBorn      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:secquestionanswer2 CONTENT={{!COL11}}
pause     
'กรอก Captcha      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:regFormBody ATTR=ID:IAgreeBtn

'002      
VERSION BUILD=6650406 RECORDER=FX      
TAB CLOSEALLOTHERS      
SET !EXTRACT NULL      
SET !ERRORIGNORE YES      
SET !EXTRACT_TEST_POPUP NO      
SET !ERRORCONTINUE YES      
SET !DATASOURCE Mysubmit.csv      
SET !DATASOURCE_COLUMNS 20      
TAB T=1      
URL GOTO=http://www.blinklist.com/user/join      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/user/join ATTR=ID:username CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/user/join ATTR=ID:email CONTENT={{!COL4}}      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/user/join ATTR=ID:password1 CONTENT={{!COL6}}      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/user/join ATTR=ID:firstname CONTENT={{!COL2}}      
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:signup-w-email ATTR=ID:gender2      
TAG POS=1 TYPE=SELECT FORM=ACTION:/user/join ATTR=ID:day CONTENT=%17      
TAG POS=1 TYPE=SELECT FORM=ACTION:/user/join ATTR=ID:month CONTENT=%6      
TAG POS=1 TYPE=SELECT FORM=ACTION:/user/join ATTR=ID:year CONTENT=%1980      
pause      
'กรอก Captcha      
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/user/join ATTR=ID:termCondition CONTENT=YES      
TAG POS=1 TYPE=BUTTON ATTR=TXT:Signmeup!

'003      
VERSION BUILD=6650406 RECORDER=FX      
TAB T=1      
TAB CLOSEALLOTHERS      
SET !EXTRACT NULL      
SET !ERRORIGNORE YES      
SET !EXTRACT_TEST_POPUP NO      
SET !ERRORCONTINUE YES      
SET !DATASOURCE Mysubmit.csv      
SET !DATASOURCE_COLUMNS 20      
TAB T=1      
URL GOTO=http://www.bofunk.com/register.php      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:uname3 CONTENT={{!COL1}}      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:NoFormName ATTR=NAME:pword3 CONTENT={{!COL6}}      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:NoFormName ATTR=NAME:password2 CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:email CONTENT={{!COL4}}      
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:country CONTENT=%US      
TAG POS=1 TYPE=INPUT:RADIO FORM=NAME:NoFormName ATTR=NAME:gender&&VALUE:female      
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:month CONTENT=%9      
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:day CONTENT=%15      
TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:year CONTENT=%1983      
pause      
'กรอก Captcha      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=VALUE:Register!

โปรดสังเกตว่าการลงทะเบียนแต่ละแห่งใช้ข้อมูลค่อนข้างต่างกัน แต่เมื่อปรับแก้ Script ของ Macro แล้วก็ยังใช้ข้อมูลจากไฟล์ Mysubmit.csv เพียงไฟล์เดียวได้ และโปรดสังเกตอีกว่าผมได้นำโค้ดทั้ง 3 ชุดมารวมเป็น Macro เดียวกันเพื่อให้สามารถสั่ง run เพียงครั้งเดียวได้

ขั้นต่อมาผมได้นำ Macro ที่สร้างขึ้นและไฟล์ Mysubmit.csv ไปเก็บไว้ในโฟล์เดอร์ Macros และ Datasources ตามลำดับ

สอน iMacros สอนเขียน Macro   

ส่วนขั้นตอนการสั่งให้ Macro ทำงานผมจะสั่งแบบ Play ปกติ ไม่ใช่ Play(Loop) ซึ่งเมื่อทำเช่นนี้เราสามารถลงทะเบียนทั้ง 3 แห่งนี้โดยการใช้ข้อมูลจาก CSV เพียงไฟล์เดียวและ  Run Macro เพียงครั้งเดียวเท่านั้น

iMacro Auto post 

บทสรุปของการ Import ไฟล์ CSV เข้าไปในการทำงานของ Macro

จากทั้งสองตัวอย่างนี้แต่ละวิธีมีข้อดีและข้อเสียต่างกันและ เราควรเลือกใช้ให้เหมาะสมดังนี้
* ใช้รูปแบบในตัวอย่างที่ 1 เมื่อ Webpage ที่กระทำนั้นมีลักษณะคล้ายคลึงกันค่อนข้างมาก 
* ใช้รูปแบบในตัวอย่างที่ 2 เมื่อ ต้องทำการ Submit ที่เดิมซ้ำ ๆ แต่ข้อมูลการ Submit เปลี่ยนบ่อย ๆ เช่นการ Submit บทความเป็นต้น

ในบทความต่อไปผมจะนำเสนอรูปแบบการนำเข้าข้อมูลโดยใช้ Text file ซึ่งมีรูปแบบการใช้คล้ายกับ CSV file ทำงานได้คล้ายคลึงกัน อย่าลืมติดตามอ่านกันนะครับ สวัสดีครับ

โพสต์ยอดนิยมจากบล็อกนี้

I miss you all กับ I miss all of you ต่างกันอย่างไร

ปัญหาและเฉลยวิชาธรรม นักธรรมชั้นตรี สอบในสนามหลวง วันอังคาร ที่ ๒๙ กันยายน พ.ศ.๒๕๕๒

ปัญหาและเฉลยวิชาอนุพุทธประวัติ นักธรรมชั้นโท สอบในสนามหลวง วันอาทิตย์ ที่ ๒๐ พฤศจิกายน พ.ศ. ๒๕๔๘