|
本帖最后由 bluexuemei 于 2014-12-31 21:11 编辑
- Sub getwebdata()
- '需要安装ACTIVERUBY ,下载地址 http://www.artonx.org/data/asr/Ruby-2.1.1.msi
- Dim url, info, bname, img, cell
- Dim nUrl As String, localFilename As String
- Dim XmlHttp As Object, ayrHttpBody() As Byte
- Set ojs = CreateObject("scriptcontrol"): ojs.Language = "rubyscript"
- Set XmlHttp = CreateObject("Microsoft.XMLHTTP")
- For Each cell In Selection
- url = cell.Value
- y = ojs.eval("require 'open-uri';$s=open(%Q(" & url & "),&:read)")
- info = ojs.eval("r=Regexp.union('decTxtAucPrice,StartPrice,EndTime,SellerID'.split(','));$s.scan(/#{r}"">([\s\S]*?)</).flatten.insert(2,'').map{|x|x.encode('gbk').gsub(10.chr,'')}")
- bname = ojs.eval("$s.scan(/title>(.+?)(?=\-)/)[0][0].encode('gbk')")
- img = ojs.eval("$s.scan(/li title.+?src\=""(.+?)""/).flatten")
- cell(1, 2).Resize(1, 5) = info
- cell(1, -1).Value = bname
- subfolder = Replace(Replace(bname, "/", ""), " ", "")
- ' Debug.Print subfolder
- MkDir ThisWorkbook.Path & "" & subfolder
- For i = 0 To UBound(img)
- nUrl = img(i)
- localFilename = ThisWorkbook.Path & "" & subfolder & "" & i + 1 & ".jpg"
- XmlHttp.Open "GET", nUrl, True '异步下载
- XmlHttp.Send
- Do Until XmlHttp.ReadyState = 4
- DoEvents
- Loop
- If XmlHttp.Status = 200 Then
- ayrHttpBody() = XmlHttp.ResponseBody
- Open localFilename For Binary As #1
- Put #1, , ayrHttpBody()
- Close #1
- End If
- Next
- Next
- Set XmlHttp = Nothing
- Set ojs = Nothing
- Columns("a:h").AutoFit
- Stop
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|