6/27/2561

วิธี Import ข้อมูลใน Excel (xls , xlsx) เข้าสู่ MySQL

Update 3-5-2011 !!!!
ให้อ่านเป็นภาษาไทยใน database ได้แล้ว


          หลายๆ คนคงเจอปัญหาประมาณว่า มีข้อมูลอยู่ในไฟล์ Excel แล้วต้องการที่จะนำข้อมูลไปใช้กับ MySQL ผมก็เจอกับปัญหานี้เช่นกัน ลองมาหลายๆวิธีแล้วพบปัญหา import แล้ว error หรือไม่แสดงออกมาเป็นภาษาไทย


          วันนี้ผมมีวิธีการ Import ข้อมูลจาก Excel เข้าสู่ MySQL และสามารถแสดงออกมาเป็นภาษาไทยในรูปแบบ UTF-8 แบบไม่มีปัญหาใดๆ ^^ มาเริ่มกันเลยดีกว่า




ก่อนอื่นผมมีตัวอย่างจากไฟล์ xls ดังนี้


ทำการ Save File Excel ให้เป็น CSV ก่อนดังนี้
ไปที่ File -> Save As -> OtherFormats


จากนั้นเลือก Formats เป็น CSV (Comma delimited) (*.csv)


จากนั้นทำการแปลง Encode ของไฟล์เป็น UTF-8 โดย
เปิดไฟล์ CVS ด้วย Notepad


หาก Save ถูก Formats จะพบข้อมูลดังรูป


ทำการลบข้อมูลหัวตารางออกให้เลือกแต่ข้อมูลที่เราต้องการนำไปใส่ใน MySQL


ไปที่ File -> Save As


ด้านล่างเลือก Encoding เป็น UTF-8


เข้าไปสร้างฐานข้อมูลและตารางใน MySQL ตามข้อมูลที่เราต้องการ
ตัวอย่างของผมเป็นดังนี้
สร้างฐานข้อมูลชื่อ slayer_project และเลือก MySQL connection collation: เป็น utf8_unicode_ci


สร้างตารางตามข้อมูลที่มีอยู่


จากนั้นทำการเขียน Code PHP เพื่ออ่านข้อมูลจากไฟล์ CVS ลงฐานข้อมูล MySQL
ตัวอย่าง Code ของผมเป็นดังนี้

<?php
//ส่วนของการเชื่อมต่อฐานข้อมูล MySQL
$objConnect = mysql_connect("localhost","username","password") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("database_name");

//ทำการเปิดไฟล์ CSV เพื่อนำข้อมูลไปใส่ใน MySQL
$objCSV = fopen("member.csv", "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
        //นำข้อมูลใส่ในตาราง member
 $strSQL = "INSERT INTO member ";

        //ข้อมูลใส่ใน field ข้อมูลดังนี้
 $strSQL .="(id,name,lastname,age,tel) ";
 $strSQL .="VALUES ";
        
        //ข้อมูลตามที่อ่านได้จากไฟล์ลงฐานข้อมูล
 $strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
 $strSQL .=",'".$objArr[3]."','".$objArr[4]."') ";
 
 //ให้ข้อมูลอยู่ในรูปแบบที่อ่านได้ใน phpmyadmin (By.SlayerBUU Credits พี่ไผ่)
 mysql_query("SET NAMES UTF8");

 //เพิ่มข้อมูลลงฐานข้อมูล
 $objQuery = mysql_query($strSQL);
}
fclose($objCSV);

echo "Import Done.";
?>
ขอขอบคุณ Code จาก thaicreate.com

นำไฟล์ cvs ไว้ที่เดียวกับไฟล์ php เพื่อทำการ import


หากการ Import ข้อมูลไม่มีปัญหาจะขึ้นข้อความว่า Import Done.

เมื่อลองดูในฐานข้อมูลก็จะพบว่ามีข้อมูลที่เราต้องการอยู่ในฐานข้อมูลแล้ว



ลองเขียน Code ดึงข้อมูลออกมาแสดงเปิดดูในรูปแบบ UTF-8 ก็แสดงภาษาไทยได้อย่างไม่มีปัญหา ก่อนที่จะ query ข้อมูลออกมาต้อง mysql_query("SET NAMES UTF8");ก่อนด้วยครับ

ตัวอย่าง Code

<?php
$objConnect = mysql_connect("localhost","username","password") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("database_name");

$sql = ("SELECT * from member");
mysql_query("SET NAMES UTF8");

$result = mysql_query($sql);
While($row= mysql_fetch_array($result)){
echo "id = ".$row['id'];
echo "name = ".$row['name'];
echo "lastname = ".$row['lastname'];
echo "age = ".$row['age'];
echo "tel = ".$row['tel'];
}
?>


ตัวอย่างข้อมูลที่แสดง



Credits : พี่ตั้ม , อ.กบ , thaicreate.com , พี่ไผ่
Link เกี่ยวข้อง : http://www.thaicreate.com/php/php-convert-csv-to-mysql.html 

6/21/2561

สอนใช้งาน iMacros : ตอนที่ 2 Scripts และ Commands


ต่อเนื่องจากบทความ สอนใช้งาน iMacros : ตอนที่ 1 วิธีติดตั้ง iMacros และใช้งานเบื้องต้น ผู้ที่ได้อ่านแล้วคงมีความเข้าใจในเบื้องต้น เกี่ยวกับการ หลักการทำงานของ iMacros ,วิธี record การทำงานบน Webpage และนำผลการบันทึกนั้นมาเปิดใช้งาน 

IMacrosTutorial สอนใช้งาน Imacro สอนทำ SEO Blogger  

ก่อนจะกล่าวอะไรต่อไปผมอยากให้ผู้อ่านลองถามตัวเองก่อนว่า  เครื่องมือนี้ (iMacros) มีประโยชน์กับตัวคุณจริงหรือไม่? คุณต้องการเรียนรู้การใช้งาน iMacros จริงหรือไม่? ถ้าคำตอบคือไม่ผมก็ขอให้ผ่านบทความชุดนี้ไปเลย เพราะบทความชุดนี้จะต้องอ่านและทดลองทำไปด้วยจึงจะเกิดความเข้าใจและเห็นผล หากอ่านผ่าน ๆ แล้วไม่ได้ทำก็จะไม่มีทางเข้าใจเรื่องเหล่านี้ และจะเป็นการเสียเวลากับตัวคุณเอง 

สำหรับบทความนี้ผมจะนำเสนอเพิ่มเติมอีก 4 ประเด็นคือ 
1. รูปแบบ Script และ Command ของ Macro  ใน iMacros เป็นอย่างไร? 
2. Command ที่สำคัญ และที่ใช้งานบ่อย ๆ ใน Macro  ที่ควรรู้จัก 
3. การแก้ไข Script และ Command ในแต่ละ Macro  
4. การนำเข้า Macro จากภายนอก 

รูปแบบ Script และ Command ของ Macro  ใน iMacros เป็นอย่างไร?

ในบทความตอนที่ 1 ผมได้สอนให้บันทึกกิจกรรมที่เราทำซ้ำ ๆ ด้วย iMacros และบันทึกออกมา ถ้าคุณลอง Click ขวาที่ List ทางซ้ายมือและเลือก Edit Macro ก็จะเห็นคำสั่งการทำงานที่มีเพียงไม่กี่บรรทัด 

iMacros2.1 สอนใช้งาน Imacros 

ตัวอย่าง ในที่นี้ผมได้บันทึกการ Submit บทความกับ Digg เอาไว้ และเมื่อเปิดขึ้นมาดูก็จะเห็น Script ต่าง ๆ ดังนี้ 

VERSION BUILD=6700624 RECORDER=FX     
TAB T=1      
URL GOTO=http://digg.com/      
TAG POS=1 TYPE=A ATTR=ID:header-login      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/login/prepare/digg ATTR=NAME:username CONTENT=username      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/login/prepare/digg ATTR=NAME:password CONTENT=password      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://digg.com/login/prepare/digg ATTR=VALUE:Login      
TAG POS=1 TYPE=A ATTR=TXT:Submit<SP>New      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:url CONTENT=http://www.hackublog.com/       
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:thisform ATTR=ID:type-news      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=ID:submit_button      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:title CONTENT=หัวเรื่อง      
TAG POS=1 TYPE=TEXTAREA FORM=NAME:NoFormName ATTR=ID:body CONTENT=เนื้อหาโดยย่อ      
TAG POS=1 TYPE=A ATTR=ID:topic-503      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:captcha CONTENT=รหัสCaptcha      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:submission-step-2 ATTR=ID:submit_button
TAG POS=1 TYPE=A ATTR=TXT:Logout

โค้ดด้านบนนี้ผมไม่ได้เขียนขึ้นมาเอง แต่เป็นโค้ดที่ได้จากการ RECORD (บันทึก) กิจกรรมที่ทำขณะ Submit บทความกับ Digg ด้วย iMarcro ซึ่งคุณเองก็สามารถทำได้โดยใช้วิธีในบทความตอนแรกที่ได้สอนไปแล้ว  และในทางปฏิบัติผลลัพธ์ที่เกิดขึ้นในจุดที่เป็นอักษรสีแดงของการบันทึกของแต่ละคน และแต่ละครั้งจะไม่เหมือนกัน 

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

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


Command ที่สำคัญ และที่ใช้งานบ่อย ๆ ใน Macro  ที่ควรรู้จัก

ถ้าสรุปโค้ดของ  Macro ผมขอแยกเป็น 2 ส่วนย่อย ๆ คือ ส่วนแรกคือการกำหนดเงื่อนไขและประกาศตัวแปรและส่วนที่สองคือส่วนดำเนินการ และโปรดสังเกตว่า โค้ดของ  Macro ไม่จำเป็นต้องมีส่วนจบ ถ้าไม่มีการดำเนินการใด ๆ ต่อแล้ว iMacro จะหยุดทำงานโดยอัตโนมัติ 

1. Command ที่สำคัญในการกำหนดเงื่อนไขและประกาศตัวแปร

1.1 Command บรรทัดแรกเป็นการประกาศ VERSION ของ iMacro ที่เราได้ทำการบันทึกหรือเขียนไว้  
VERSION BUILD=6700624 RECORDER=FX
ในกรณีเราเขียนเองอาจจะไม่มีข้อความ RECORDER=FX ก็ได้  และในทางปฏิบัติโค้ดบรรทัดนี้ไม่จำเป็นต้องแก้ไข 

1.2 Command ที่กำหนดว่าจะให้ Macro กระทำกับ Tab ที่เท่าไร 
TAB T= 
ในกรณีที่เราเปิดใช้งาน Tab ใน Firefox Browser เอาไว้หลาย ๆ Tab และถ้าเราสั่งดำเนินการทันที iMacro ก็จะนับ Tab ปัจจุบันเป็น Tab ที่ 1 และนับ Tab อื่น ๆ เป็น Tab ที่ 2 ,3 ต่อไปเรื่อย ๆ ดังนั้นเราสวามารถกำหนดค่านี้เป็น TAB T=2 หรือ TAB T=3 ก็ได้ 

กรณีที่ไม่ต้องการให้เกิดความสับสนในการใช้ Tab คุณอาจจะเพิ่มคำสั่งด้านล่างเข้าไป เพื่อให้ Tab ที่ไม่เกี่ยวข้องถูกปิดไปทั้งหมด 
TAB CLOSEALLOTHERS 

1.3 Command ที่ใช้กำหนดให้ข้ามการดำเนินการที่ผิดพลาดและดำเนินการอย่างอื่นต่อไป 
SET !ERRORIGNORE YES 
SET !ERRORCONTINUE YES
Command 2 บรรทัดนี้นิยมใช้มากในกรณีที่สั่งให้ทำงานแบบ loop หรือมีการทำซ้ำหลาย ๆ รอบ เพราะจะช่วยให้การทำงานไม่จบลง เมื่อการทำงานยังไม่ครบตามที่ตั้งไว้ 

1.4 Command ที่ใช้ในการเรียกใช้ไฟล์ .csv 
CMDLINE !DATASOURCE ชื่อไฟล์.csv
หรือ 
SET !DATASOURCE ชื่อไฟล์.csv
หรือกรณีวางไฟล์เอาไว้นอก Folder Datasources เช่นวางไว้ที่ Drive D ก็ใช้คำสั่ง 
SET !DATASOURCE D:\ชื่อไฟล์.csv
ไฟล์ .csv เป็นเหมือนเอกสารที่สามารถแบ่งข้อมูลออกเป็นแถวและหลักได้ ซึ่งสามารถเปิดแก้ไขในโปรแกรม MS Excel 
และไฟล์ .csv จะถูกนำมาใช้ในกรณีที่ข้อมูลที่เราต้องการกรอกมีลักษณะทำซ้ำหลาย ๆ ครั้งด้วยรูปแบบเดียวกัน 

เช่น ถ้าเราต้องการกนอก URL +Username +password 50 ชุด เราก็สร้างไฟล์ .csv ขึ้นมา 1 ไฟล์ ที่มี 50 แถว และมี 3 คอลัมน์ ที่ประกอบด้วย URL  Username และ password 

iMacros Blogger SEO Facebook Tutorial    
แล้วใช้คำสังใน iMacro เรียกใช้ข้อมูลจากไฟล์  สำหรับรายละเอียดการสร้างไฟล์ เรียกใช้ไฟล์ DATASOURCE และการเรียกใช้ไฟล์จากDatasources จะกล่าวรายละเอียดในบทความตอนที่ 3 ครับ   


1.5 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 


1.6 Command ที่กำหนดเวลาในการโหลด Webpage 
SET !TIMEOUT 30
เวลาปกติที่ Macro จะรอการเปิดหน้า Webpage เป็น 60 วินาที แต่ถ้าเราต้องการเร่งเวลาก็อาจจะเพิ่มคำสั่งนี้ลงไปให้เป็น 30 วินาที (ใส่เลข 30 เหมือนในตัวอย่าง) เป็นต้น  


1.7 Command ที่กำหนดเวลาในการดำเนินการแต่ละขั้นตอน 
SET !TIMEOUT_STEP 3 
SET !TIMEOUT_TAG 3
คำสั่งชุดนี้เป็นการกำหนด ให้รอการดำเนินการแต่ละขั้นตอนไม่เกิน 3 วินาที  สองคำสั่งนี้จะช่วยให้ Macro ทำงานเร็วขึ้น ซึ่งถ้าไม่ใช้ก็ไม่เสียหายอะไรเพราะค่าเดิมของ Macro จะตั้งไว้ที่ 6 วินาที  

1.8 Command ที่เกี่ยวข้องกับการกรอก Password บน Webpage 
ใช้ Command ด้านล่างเมื่อไม่ต้องการให้มีการ Lock หรือจดจำการใช้ Password (แนะนำให้ตั้งแบบนี้) 
SET !ENCRYPTION NO
ใช้ Command ด้านล่างเมื่อต้องการให้มีการจดจำการใช้ Password ไว้ใน temporarily ในเครื่องของเราในขณะที่ run Macro อยู่ 
SET !ENCRYPTION TMPKEY
และใช้Command ด้านล่างเมื่อต้องการให้ใช้รหัสผ่านจากรหัสที่เก็บไว้ในคอมพิวเตอร์ของคุณ (ในกรณีที่คุณบันทึกรหัสไว้บน Browser) 
SET !ENCRYPTION STOREDKEY

1.9 Command ในการกำหนดค่าตัวแปร 
ในการกำหนดค่าตัวแปรใน 1 Macro จะกำหนดได้ไม่เกิน 3 ตัวแปรซึ่งกำหนดได้โดยใช้ชุดคำสั่ง 
SET !VAR1 ค่าตัวแปร1 
SET !VAR2 ค่าตัวแปร2 
SET !VAR3 ค่าตัวแปร3
ชุดคำสั่งด้านบนนี้จะใช้ในกรณีที่กำหนดตัวแปร 3 ตัวอาจจะกำหนดน้อยกว่านี้ก็ได้ 

และในการเรียกใช้ตัวแปรต่าง ๆ ทำได้โดยใช้โค้ด 
{{!VAR1}}
เช่น ถ้าผมต้องการเรียกใช้ตัวแปรที่ 3 ซึ่งผมกำหนดไว้เป็น email ก็เรียกใช้โดย 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:email CONTENT={{!VAR3}}
หรือถ้าคัวแปรที่ 1 เป็นชื่อโดเมนก็อาจจะเรียกใช้โดยโค้ดด้านล่างเป็นต้น 
URL GOTO=http://{{!VAR1}}

1.10 การใส่ Comment ใน Macro 
การใส่ comment ใน Marcro สามารถใส่ได้ไม่จำกัดแต่มีเงื่อนไขว่าจะต้องเริ่มบรรทัดใหม่และนำด้วยเครื่องหมาย ' 
เช่น ดู comment บรรทัดสีเขียวในโค้ดด้านล่าง 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:homepage CONTENT=http://www.hackublog.com 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:location CONTENT=USA 
pause 
'หยุดให้กรอก captcha ครับ กรอกแล้วกด Continue
การใส่ Comment ลงไปในลักษณะนี้ Macro จะเข้าใจว่าไม่ต้องนับการดำเนินการในขั้นนี้และข้ามไปบรรทัดอื่น 

2. Command ที่สำคัญในการกำหนดการดำเนินการ


TAG เป็นคำสั่งที่ใช้เลือก HTML ในหน้า Webpage ซึ่งจะใช้ Parameter  POS, TYPE, FORM  และ ATTR เป็นตัวตัดสินเลือก HTML บนหน้า Webpage ในแต่ละจุด 

การดำเนินการในเต่ละขั้นตอนจะนำด้วย TAG และจะมาควบคู่กับ Parameter POS, TYPE, FORM  และ ATTR  เช่น 

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=2

แต่ก็ไม่จำเป็นเสมอไป และเราสามารถตัดการใช้ Parameter ที่ไม่จำเป็นทิ้งไปได้ดูรายละเอียดเพิ่มจากด้านล่าง  


2.1 POS (POSITION) 
เป็น Parameter ที่ใช้ระบุตำแหน่งในกรณีที่ใน Webpage นั้น ๆ มีส่วนที่ซ้ำกันมากกว่า 1 แห่ง เช่น 

POS=1


2.2 TYPE 
เป็น Parameter ที่ใช้ระบุชนิดของ HTML ที่เราจะกระทำบนWebPage นั้น ๆ เช่น 

TYPE=SELECT
TYPE=INPUT:TEXT
TYPE=A
TYPE=INPUT:SUBMIT
TYPE=INPUT:CHECKBOX
เป็นต้น 


2.3 FORM 
เป็น Parameter ที่สั่งให้กระทำกับ Tag Form ของ HTML บนWebPage นั้น ๆ เช่น 
FORM=NAME:TestForm2
ในกรณีที่เราต้องการป้องกันความผิดพลาดจากเว็บไซต์ที่เปลี่ยนข้อมูล session ID แบบ ไดนามิก ได้ด้วย หรือพูดให้เข้าใจง่ายคือการเข้าถึงข้อมูลแต่ละครั้งบน Website นี้จะได้รหัสข้อมูลแตกต่างกัน ถ้าเราใช้ URL ที่บันทึกไว้ครั้งแรก ครั้งที่ 2 ที่เข้าไปอาจจะไม่พบ และ Macro จะไม่ทำงาน วึ่งแก้ปัญหานี้โดยใช้ 
FORM=ACTION:*
(เทคนิคนี้สำคัญมาก เหมาะเอาไปประยุกต์ใช้) เช่น 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:email CONTENT={{!VAR3}}

2.4 ATTRIBUTE หรือตัวย่อใช้ว่า ATTR 
เป็น Command ที่ใช้ในกรณีที่เราดำเนินการเกี่ยวกับ Text Link หรือ URL 
ตัวอย่างคำสั่งกับ Text Link  
ATTR=TXT:some_name

ตัวอย่างคำสั่งกับ URL  
ATTR=HREF:some_url
โปรดสังเกตว่าค่าที่ต่อท้ายจะเป็นชื่อ Link หรือ URL 

2.5 CONTENT 
เป็น Parameter ที่ใช้ระบุข้อมูลที่เป็นรายละเอียดในการใช้งานแต่ละครั้ง เช่น ชื่อ password email ,URL หรือบทความที่จะนำไป Submit ซึ่งถ้าเราเขียนสคริปต์เป็นแล้วเราจะสามารถเรียกข้อมูลที่เป็น Content มาจาก Datasource หรือจากค่าตัวแปรที่กำหนดได้ 
ตัวอย่างการระบุข้อมูล CONTENT โดยตรง (กรณีกรอกชื่อว่า hackublog) 
CONTENT=hackublog
ตัวอย่างกาเรียกใช้ข้อมูล CONTENT จากตัวแปร (กรณีเรียกใช้ตัวแปรที่ 2) 
CONTENT={{!VAR2}}
ตัวอย่างการเรียกใช้ CONTENT จากคอลัมน์ของไฟล์ .csv จาก Folder Datasource (กรณีเรียกใช้ข้อมูลจาก คอลัมน์ ที่ 3) 
CONTENT={{!COL3}}


2.6 Command GOTO 
เป็นคำสั่งให้ไปยัง URL ที่ระบุ เช่น 
URL GOTO=http://www.hackublog.com/
URL GOTO={{!COL1}}
URL GOTO={{!COL1}}/index.php?action=register

2.7 EXTRACT 
เป็นคำสั่งที่ใช้ในการกรณีที่ต้องการเก็บข้อมูลบน Webpage ในหลายกรณ๊เช่น
Extract Complete Website
'เก็บ Webpage ทั้งหน้า
TAG POS=1 TYPE=HTML ATTR=* EXTRACT=HTM 
'เก็บ Webpage เฉพาะที่เป็น TEXT ทั้งหน้า
TAG POS=1 TYPE=HTML ATTR=* EXTRACT=TXT
'เก็บ Webpage เฉพาะส่วนหัว
TAG POS=1 TYPE=HEAD ATTR=* EXTRACT=HTM
'เก็บ Webpage เฉพาะส่วน BODY เท่านั้น
TAG POS=1 TYPE=BODY ATTR=* EXTRACT=HTM
Extract Page Title
URL GOTO=http://www.hackublog.com/
TAG POS=1 TYPE=TITLE ATTR=* EXTRACT=TXT

ข้อมูลที่เก็บจะเป็นส่วน Title ของหน้า

Extract Page URL
ADD !EXTRACT {{!URLCURRENT}}

คำสั่งนี้สามารถประยุกต์ใช้ประโยชน์ได้มากเพราะสามารถเก็บ URL ของหน้าที่เปิดได้


2.8 SAVEAS 
เป็นคำสั่งที่ต้องการให้มีการบันทึกข้อมูลบนหน้า Webpage หรือข้อมูลที่ได้จากการ EXTRACT ลงบนเครื่องคอมพิวเตอร์ของเรา เช่น
SAVEAS TYPE=EXTRACT FOLDER=* FILE==ชื่อไฟล์.csv
หรือ
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}

2.9 <SP> 
เป็นโค้ดที่ใส่คั่นให้ข้อความใน Macro มีการเว้นวรรค   

2.10 <BR> 
เป็นโค้ดที่ใส่คั่นให้ข้อความใน Macro มีการขึ้นบรรทัดใหม่ 



การแก้ไข Script และ Command ในแต่ละ Macro

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

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

สอน iMacro Submit bookmark และ Pligg 
ตัวอย่าง 
จาก Macro การ Submit บทความกับ Digg.com ที่ได้ยกตัวอย่างไปข้างต้นคือ 
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1      
URL GOTO=http://digg.com/      
TAG POS=1 TYPE=A ATTR=ID:header-login      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/login/prepare/digg ATTR=NAME:username CONTENT=username      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/login/prepare/digg ATTR=NAME:password CONTENT=password      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://digg.com/login/prepare/digg ATTR=VALUE:Login      
TAG POS=1 TYPE=A ATTR=TXT:Submit<SP>New      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:url CONTENT=http://www.hackublog.com/       
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:thisform ATTR=ID:type-news      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=ID:submit_button      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:title CONTENT=หัวเรื่อง      
TAG POS=1 TYPE=TEXTAREA FORM=NAME:NoFormName ATTR=ID:body CONTENT=เนื้อหาโดยย่อ      
TAG POS=1 TYPE=A ATTR=ID:topic-503      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:captcha CONTENT=รหัสCaptcha      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:submission-step-2 ATTR=ID:submit_button
TAG POS=1 TYPE=A ATTR=TXT:Logout
ผมสามารถดัดแปลงให้สามารถใช้ได้กับการ Submit บทความครั้งต่อไปโดยเติม Command ต่าง ๆ ที่ได้อธิบายไปแล้ว ได้ผลลัพธ์เป็น 
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1 
SET !ERRORIGNORE YES 
SET !ERRORCONTINUE YES
SET !TIMEOUT_STEP 3 
SET !TIMEOUT_TAG 3 
SET !VAR1 ใส่username
SET !VAR2 ใส่password 
SET !VAR3 ใส่URLที่ต้องการ Submit
URL GOTO=http://digg.com/      
TAG POS=1 TYPE=A ATTR=ID:header-login    
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/login/prepare/digg ATTR=NAME:username CONTENT={{!VAR1}}     
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/login/prepare/digg ATTR=NAME:password CONTENT={{!VAR2}}     
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://digg.com/login/prepare/digg ATTR=VALUE:Login      
TAG POS=1 TYPE=A ATTR=TXT:Submit<SP>New      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:url CONTENT={{!VAR3}}
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:thisform ATTR=ID:type-news      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=ID:submit_button      
pause
'หยุดเพื่อกรอก หัวเรื่อง เนื้อหา เลือกหมวดหมู่ และกรอก Captcha เสร็จแล้วกด Continue   
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:submission-step-2 ATTR=ID:submit_button
TAG POS=1 TYPE=A ATTR=TXT:Logout
คำสั่งที่ผมได้เพิ่มเข้าไปมีอะไรบ้าง 
SET !ERRORIGNORE YES 
SET !ERRORCONTINUE YES
คำสั่งด้านบนใส่เข้าไปเพื่อให้ Macro ไม่หยุดทำงานกลางคันโดยที่งานขั้นตอนบางขั้นตอนยังคงค้างอยู่ นั่นคือหากพบความผิดพลาดในการดำเนินการบางขั้นตอน Macro ก็จะยังทำงานอยู่ 

SET !TIMEOUT_STEP 3 
SET !TIMEOUT_TAG 3
คำสั่งด้านบนใส่เข้าไปเพื่อให้การทำงานแต่ละขั้นตอนเร็วขึ้น ใช้เวลาอย่างมาก 3 วินาที 
SET !VAR1 ใส่username 
SET !VAR2 ใส่password 
SET !VAR3 ใส่URLที่ต้องการ Submit
โค้ด้านบนใส่เข้าไปเพื่อให้การแก้ไขข้อมูลทำได้ง่ายขึ้น เช่นถ้าจะเปลี่ยนชื่อ รหัสผ่านที่ใช้ ก็แก้ได้ตรงค่าตัวแปร ไม่ต้องก็ในตำแหน่ง CONTENT ซึ่งช่วยลดความสับสนได้ดี 
pause
ใส่เข้าไปเพื่อให้ Macro หยุดรอเรากรอกข้อมูล เมื่อเรากด Continue แล้ว Macro จึงจะทำงานต่อไป 
'หยุดเพื่อกรอก หัวเรื่อง เนื้อหา เลือกหมวดหมู่ และกรอก Captcha เสร็จแล้วกด Continue
บรรทัดนี้เป็น Comment ไม่ได้ส่งผลต่อการทำงานเลย ถ้าคุณใช้เองอาจจะใส่หรือไม่ใส่ก็ได้ 

วิธีแก้ไข Macro วิธีที่ 2 
แก้ไขโดยเข้าไปที่ 
C:\Documents and Settings\ชื่อผู้ใช้\My Documents\iMacros  
ซึ่งคุณจะพบกับไฟล์ของ Macro (ไฟล์สกุล .iim) อยู่ในโฟลเดอร์ Macro อยู่หลายไฟล์ 

สอนใช้งาน iMacros อย่างละเอียด 

ให้เปิดไฟล์ที่ต้องการแก้ไขกับโปรแกรมชนิด Text Editor เช่น Notepad หรือ Wordpad ที่มีอยู่ในทุกเครื่องอยู่แล้ว (แนะนำให้ใช้ Wordpad) 

สอน iMacro และ Blogger SEO 

จากนั้นแก้ไขตามแนวทางที่อธิบายเอาไว้ในวิธีที่ 1 และบันทึก 


การนำเข้า Macro จากภายนอกเพื่อใช้งาน

การนำ Macro จากภายนอกมาใช้งานทำได้คล้ายกับวิธีแก้ไข Macro ซึ่งทำได้ 2 วิธีดังนี้ 
วิธีนำเข้า Macro วิธีที่ 1 

1.1 ให้เรียกใช้ iMacros ก่อน โดย Click ที่ icon ของ iMacros 
1.2 จากนั้นมองทาง List ของ Macro ทางซ้ายมือคุณจะเห็นรายการแรกเป็น Macro ที่ชื่อว่า #Current.iim ทุกครั้งที่เปิดใช้งาน 
1.3 ให้คลิกขวาเพื่อ Edit Macro ตัวนี้ แล้วลบ Script และ Command เดิมออก 

ใช้ iMacro ทำ SEO  

1.4 จากนั้นวาง Script และ Command ของ Macro ที่ต้องการนำเข้าวางลงไปและบันทึกเป็นชื่อไฟล์ที่ต้องการ 

 iMacros Auto Post 

วิธีนำเข้า Macro วิธีที่ 2 
กรณีที่ไฟล์ที่จะนำเข้าเป็นไฟล์ Macro ที่มีสกุล .iim อยู่แล้วคุณสามารถคัดลอกไปวางใน 
C:\Documents and Settings\ชื่อผู้ใช้\My Documents\iMacros\Macros
 iMacro คือ ใช้งานอย่างไร Macro  

บทสรุป 
บทความนี้ผมได้แนะนำให้รู้จักรูปแบบ Script และคำสั่งที่สำคัญ รวมทั้งการแก้ไข Macro และการนำเข้า Macro จากภายนอกมาใช้งาน ซึ่งทั้งหมดนี้เป็นพื้นฐานสำคัญที่จะเอาไปต่อยอดในการใช้งานจริง สิ่งที่อยากฝากไว้คือ เมื่ออ่านเสร็จแล้วให้คุณทดลองทำด้วยตนเองและสังเกตความแตกต่างของคำสั่งต่าง ๆ ซึ่งจะทำให้คุณใช้งานได้อย่างชำนาญมากขึ้นและเป็นประโยชน์กับตัวคุณเองมากด้วย 

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

ในบทความตอนที่ 3 ผมจะนำเสนอวิธีนำเข้าข้อมูลที่อยู่ในรูป Matrix นั่นคืออยู่ในรูปแถวและหลัก ซึ่งสามารถกำหนดด้วยไฟล์สกุล .CSV ที่สร้างด้วยสมุดงาน Binary ของ Microsoft Excel ซึ่งเมื่อเราใช้ข้อมูลในรูป Matrix มาช่วยก็จะทำให้เราสามารถสั่งให้ Macro ทำงานซ้ำได้หลาย ๆ รอบ  และเราจะกรอกข้อมูลน้อยลง ซึ่งในบางกรณีเราอาจจะปล่อยให้ iMacro ทำงานแทนเราอย่างอัตโนมัติได้เลย 

ถ้าสนใจก็ติดตามอ่านต่อในตอนต่อไป บทความนี้ขออภัยที่ครั้งแรกเขียนไม่จบเพราะไปต่างจังหวัดมา 2 คืน กลับมาก็เลยเขียนต่อได้จนจบ หวังว่าคงเป็นประโยชน์กับผู้เริ่มต้นครับ สวัสดีครับ

ที่มา : http://www.hackublog.com/2010/08/imacros-tutorial-section-2-scripts-and.html