ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 11089|回复: 6

[求助] 如何提取淘宝商品的数据?谢谢

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-2-6 09:41 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我在淘宝上搜索了一大堆杏仁http://s.taobao.com/search?q=%D0%D3%C8%CA&initiative_id=staobaoz_20130207,呵呵,不知道买哪个好,排价格后发现它的价格排列不是以500克为标准的排列的,烦啦
我想提取它们的货名、每500克多少元、净含量、物流运费、30天售出件数、评价等信息,打开它的源文件却找不到,必须把这些货品一个个点开才能找到信息,请问可有办法?谢谢

TA的精华主题

TA的得分主题

发表于 2013-2-6 11:17 | 显示全部楼层
Sub 杏仁_淘宝搜索()
    On Error Resume Next
    Dim searchname As String
    Set oDoc = CreateObject("htmlfile")
    Columns("A:A").NumberFormatLocal = "@"
    searchname = "杏仁"    '%D0%D3%C8%CA
    qst = encodeURI(searchname)
    riqi = Format(Now, "yyyymmdd")
    [a1:f1] = Split("货名、每半斤多少元、净含量、物流运费、最近成交、评价等信息", "、")
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        For p = 1 To 100
            n = Range("a65536").End(xlUp).Row
            .Open "POST", "http://s.taobao.com/search?q=" & qst & "&initiative_id=tbindexz_" & riqi & "&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&bcoffset=1&newpre=null&s=" & (p - 1) * 40, False
            .SetRequestHeader "Referer", "http://www.taobao.com/"
            .SetRequestHeader "Connection", "Keep-Alive"
            .send
            tt = Split(Split(.responsetext, "data-item-count=""40"">")(1), "<!-- end list view -->")(0)
            oDoc.body.innerHTML = tt
            Set r = oDoc.All.tags("li")
            m = 0
            For i = 0 To r.Length - 1
                If r(i).classname = "list-item" Then
                    m = m + 1
                    't1 = Split(r(i).All.tags("a")(0).Title, "杏仁")
                    Cells(n + m, 1) = r(i).All.tags("a")(0).Title    '货名
                    Cells(n + m, 2) = r(i).All.tags("em")(1).innerText & "元/" & r(i).All.tags("em")(2).innerText    '每半斤多少元
                    'Cells(n + m, 3) = t1(UBound(t1))    '净含量
                    Cells(n + m, 4) = Split(r(i).All.tags("li")(1).innerText, ":")(1)    '物流运费
                    Cells(n + m, 5) = Split(r(i).All.tags("li")(0).innerText, "最近成交")(1)   '最近成交
                    Cells(n + m, 6) = "http://rate.tmall.com/list_detail_rate.htm?itemId=" & Split(r(i).All.tags("a")(0).href, "id=")(1) & "&currentPage=1"    '评价等信息
                End If
            Next i
        Next p
    End With
End Sub

Function encodeURI(becoded As String) As String    'url编码
    Set JS = CreateObject("msscriptcontrol.scriptcontrol")
    JS.Language = "JavaScript"
    encodeURI = JS.Eval("encodeURIComponent('" & becoded & "');")
End Function

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-6 14:54 | 显示全部楼层
蓝天大师,非常感谢您的帮助。下面几句我没弄清楚,能否答疑解惑,谢谢
.Open "POST", "http://s.taobao.com/search?q=" & qst & "&initiative_id=tbindexz_" & riqi & "&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&bcoffset=1&newpre=null&s=" & (p - 1) * 40, False
  .SetRequestHeader "Referer", "http://www.taobao.com/"
  .SetRequestHeader "Connection", "Keep-Alive"
你不是在第一句连上淘宝的搜索网页了吗,为什么还要在第二句中再次连上淘宝主页?第三句,我完全没弄懂啥意思?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-6 14:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
蓝天630902 发表于 2013-2-6 11:17
Sub 杏仁_淘宝搜索()
    On Error Resume Next
    Dim searchname As String

蓝天大师,非常感谢您的帮助。下面几句我没弄清楚,能否答疑解惑,谢谢
.Open "POST", "http://s.taobao.com/search?q=" & qst & "&initiative_id=tbindexz_" & riqi & "&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&bcoffset=1&newpre=null&s=" & (p - 1) * 40, False
  .SetRequestHeader "Referer", "http://www.taobao.com/"
  .SetRequestHeader "Connection", "Keep-Alive"
你不是在第一句连上淘宝的搜索网页了吗,为什么还要在第二句中再次连上淘宝主页?第三句,我完全没弄懂啥意思?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-15 18:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 cumulonimbus 于 2013-2-15 19:03 编辑
蓝天630902 发表于 2013-2-6 11:17
Sub 杏仁_淘宝搜索()
    On Error Resume Next
    Dim searchname As String


蓝天大师,新年好呀!
这个地方没想明白,这个标签内容你是如何弄出来的,谢谢
本想加入其它内容:如插入其商品图片,写入商品网站链接,不知从何加起?
  Cells(n + m, 1) = r(i).All.tags("a")(0).Title    '货名
                    Cells(n + m, 2) = r(i).All.tags("em")(1).innerText & "元/" & r(i).All.tags("em")(2).innerText    '每半斤多少元
                    'Cells(n + m, 3) = t1(UBound(t1))    '净含量
                    Cells(n + m, 4) = Split(r(i).All.tags("li")(1).innerText, ":")(1)    '物流运费
                    Cells(n + m, 5) = Split(r(i).All.tags("li")(0).innerText, "最近成交")(1)   '最近成交

TA的精华主题

TA的得分主题

发表于 2016-8-11 10:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-7-25 10:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
留个脚印!!!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-26 19:35 , Processed in 0.031843 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表