ต่อไปนี้เป็นฟังก์ชันในการแยกที่อยู่รูปภาพในรูปแบบ HTML:
หลักการหลักคือการใช้นิพจน์ทั่วไปเพื่อกำหนดแอตทริบิวต์ <src> ของ <img> สิ่งนี้จะมีประโยชน์มากในโปรแกรมการซื้อกิจการ
ฟังก์ชันมีดังนี้:
ต่อไปนี้เป็นส่วนของเครื่องหมายคำพูด:
ฟังก์ชั่น ShowPic (str)
ตั้ง objRegExp = วัตถุการกำหนดค่า Regexp'set ใหม่
objRegExp.IgnoreCase = True'ไม่สนใจตัวพิมพ์
objRegExp.Global = True' ตั้งค่าเป็นการค้นหาข้อความแบบเต็ม
objRegExp.Pattern = "<img.+?>"
'เพื่อให้แน่ใจว่าสามารถดึงที่อยู่รูปภาพได้อย่างถูกต้อง จะถูกแบ่งออกเป็นสองระดับของการกำหนดค่า: ขั้นแรกให้ค้นหาแท็ก <img> ภายใน จากนั้นดึงข้อมูลที่อยู่รูปภาพภายใน ฟังก์ชัน getimgs ด้านหลังจะใช้ฟังก์ชันหลัง
strs=ตัดแต่ง(str)
ตั้งค่าการจับคู่ =objRegExp.Execute(strs)'เริ่มดำเนินการกำหนดค่า
สำหรับการแข่งขันแต่ละครั้งในการแข่งขัน
RetStr = RetStr &getimgs( Match.Value )'ทำการจับคู่รอบที่สอง
ต่อไป
ShowPic = RetStr
ฟังก์ชันสิ้นสุด
ฟังก์ชั่น getimgs (str)
รับรูปภาพ = ""
ตั้งค่า objRegExp1 = Regexp ใหม่
objRegExp1.IgnoreCase = จริง
objRegExp1.Global = จริง
objRegExp1.Pattern = " http://.+?"""' รับที่อยู่ด้านใน
ตั้งค่า mm=objRegExp1.Execute(str)
สำหรับแต่ละไม้ขีด 1 มม
getimgs=getimgs&left(Match1.Value,len(Match1.Value)-1)&"||"'สตริงที่อยู่ด้านในเพื่อใช้ในภายหลัง
ต่อไป
ฟังก์ชันสิ้นสุด
'รับเนื้อหารูปภาพ
ฟังก์ชั่น getHTTPage(url)
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
http สลัว
ตั้งค่า http=server.createobject("MSXML2.XMLHTTP")'ใช้วิธี xmlhttp เพื่อรับเนื้อหาของรูปภาพ
Http.open "GET",url,false
Http.ส่ง()
ถ้า Http.readystate<>4 แล้ว
ฟังก์ชั่นทางออก
สิ้นสุดถ้า
getHTTPPage=Http.responseBody
ตั้งค่า http=nothing
ถ้า err.number<>0 แล้ว err.Clear
ฟังก์ชั่นสิ้นสุด
'บันทึกภาพ
ฟังก์ชั่นบันทึกภาพ (จาก, tofile)
geturl สลัว, objStream, imgs
geturl=ตัดแต่ง(จาก)
imgs=gethttppage(geturl)'กระบวนการรับเนื้อหาเฉพาะของรูปภาพ
ตั้งค่า objStream = Server.CreateObject("ADODB.Stream")' หากต้องการสร้างวัตถุ ADODB.Stream ต้องใช้ ADO 2.5 ขึ้นไป
objStream.Type =1'เปิดในโหมดไบนารี
objStream.เปิด
objstream.write imgs' เขียนเนื้อหาสตริงลงในบัฟเฟอร์
objstream.SaveToFile server.mappath(tofile),2'-เขียนเนื้อหาที่บัฟเฟอร์ลงในไฟล์
objstream.Close()'ปิดวัตถุ
ตั้งค่า objstream=nothing
ฟังก์ชั่นสิ้นสุด
'อินสแตนซ์การโทร
Dim strpic,i,fname
strpic = ShowPic("<DIV align=center><IMG src="" strpic = แยก(strpic,"||")
ถ้า UBound(strpic) > 0 แล้ว
สำหรับ i = 0 ถึง UBound(strpic) - 1
'บันทึกภาพ
fname=cstr(i&mid(strpic(i),instrrev(strpic(i),".")))
บันทึกภาพ (strpic (i), fname)
ต่อไป
อื่น
สิ้นสุดถ้า