ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: wcymiss

[原创] 不懂html也来学网抓(xmlhttp/winhttp+fiddler)

    [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-9-21 11:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:网页交互
scnjlwb 发表于 2015-9-21 11:07
491楼中代码运行到   strJSFun = Left(strJSFun, InStr(strJSFun, "$(""#str_userpwd"").attr(""value"", p ...

网页改版了。

TA的精华主题

TA的得分主题

发表于 2015-9-21 16:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
留个书签,好好学习。

TA的精华主题

TA的得分主题

发表于 2015-9-24 12:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好好学习,daydayUP

TA的精华主题

TA的得分主题

发表于 2015-9-24 14:04 | 显示全部楼层
吴姐:有个日文网站 http://www.soundhouse.co.jp/sear ... mp;i_ListType=type2

这上面有个分页面的计数,就是“10ページ中1ページ” ,中文也就是“  共X页第X页 ” 类似的东西,

看了下源码,找不到这些字样,分析了下应该是:
<form name="f_page_size">
                <div class="search_result_box">
                        <p class="result"><strong><span id="rr_results">&nbsp;</span></strong></p>
                        <div id="rr_paginate1"></div>
这一部分生成的
从chrome的元素分析中可以看到:
<div class="pagenavi_box">
  <ol class="pagenavi">
    <li><span class="now">1</span></li>
    <li><a href="JavaScript:page_onClick(2);" class="link">2</a></li>
    <li><a href="JavaScript:page_onClick(3);" class="link">3</a></li>
    <li><a href="JavaScript:page_onClick(4);" class="link">4</a></li>
    <li><a href="JavaScript:page_onClick(5);" class="link">5</a></li>
    <li><a href="JavaScript:page_onClick(6);" class="link">6</a></li>
    <li><a href="JavaScript:page_onClick(7);" class="link">7</a></li>
    <li class="next"><a href="JavaScript:page_onClick(2);" class="link">次へ</a></li>
  </ol>  <span class="page">10ページ中1ページ</span>
</div>

请问如何能取得这个  “10ページ中1ページ” ?

TA的精华主题

TA的得分主题

发表于 2015-9-24 17:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-9-25 17:23 | 显示全部楼层
本帖最后由 liangstar82 于 2015-9-28 09:34 编辑

吴姐,能帮忙看一下如下代码吗?关于ASPX网页动态参数获取数据的例子。
Private Sub CommandButton1_Click()
  '网站:http://www.hkexnews.hk/listedco/ ... _active_main_c.aspx
  '在香港交易所网站,获取港股: 00001 (长和 )的历史文件通告,目标内容如QQ截图:记录内容.PNG 所示

   Dim strText As String, t, n, myfla As Boolean, m, mdate, p, mynum, arrcol, ar, arr, arrdata, arrall
   Dim Pd1 As Boolean, Pd2 As Boolean, url As String, url1 As String
   Dim VIEWSTATE As String, stockcode As String
   Dim DocType  As String, KeyWord As String
With ActiveSheet
    t = Timer: n = 1: myfla = True
    mdate = CStr(Format(Date, "yyyymmdd"))
    stockcode = CStr(.[D2].Value)
    With CreateObject("MSXML2.XMLHTTP")
         url = "http://www.hkexnews.hk/listedco/listconews/advancedsearch/search_active_main_c.aspx"
        .Open "GET", url, False
        .Send
        strText = .responsetext
        VIEWSTATE = encodeURI(CStr(Split(Split(strText, "__VIEWSTATE"" value=""")(1), """ />")(0)))
         url1 = "http://www.hkexnews.hk/listedco/listconews/advancedsearch/search_active_main_c.aspx"
        .Open "POST", url1, False
        .Send "__VIEWSTATE=" & VIEWSTATE _
         & "&ctl00$txt_today=" & mdate _
         & "&ctl00$hfStatus=ACM" _
         & "&ctl00$txt_stock_code=" & stockcode _
         & "&ctl00$rdo_SelectDocType=rbAll" _
         & "&ctl00$sel_tier_1=-2" _
         & "&ctl00$sel_DocTypePrior2006=-1" _
         & "&ctl00$sel_tier_2_group=-2" _
         & "&ctl00$sel_tier_2=-2" _
         & "&ctl00$ddlTierTwo=59,1,7" _
         & "&ctl00$ddlTierTwoGroup=2,1" _
         & "&ctl00$rdo_SelectDateOfRelease=rbManualRange" _
         & "&ctl00$sel_DateOfReleaseFrom_d=01" _
         & "&ctl00$sel_DateOfReleaseFrom_m=04" _
         & "&ctl00$sel_DateOfReleaseFrom_y=1999" _
         & "&ctl00$sel_DateOfReleaseTo_d=" & Mid(mdate, 7, 2) _
         & "&ctl00$sel_DateOfReleaseTo_m=" & Mid(mdate, 5, 2) _
         & "&ctl00$sel_DateOfReleaseTo_y=" & Mid(mdate, 1, 4) _
         & "&ctl00$rdo_SelectSortBy=rbDateTime"
        strText = .responsetext
        LoadTotxt (strText)

    End With
  End With
End Sub

Function LoadTotxt(strText)
   Open ThisWorkbook.Path & "\allshowing.txt" For Output As #1
   Print #1, strText
   Close #1
End Function

Public Function encodeURI(strText) As String
    With CreateObject("msscriptcontrol.scriptcontrol")
        .Language = "JavaScript"
        encodeURI = .Eval("encodeURIComponent('" & strText & "');")
    End With
End Function

发现 Requext框 WebForms 里面的__VIEWSTATE动态参数,总是和 Requext框 Raw里面的__VIEWSTATE动态参数不一致。
不知是何缘故。
我传附件上来,恳请吴姐指点迷津。 mytest.zip (60.06 KB, 下载次数: 35)









TA的精华主题

TA的得分主题

发表于 2015-9-28 22:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
必须大力的赞一个
!!!

TA的精华主题

TA的得分主题

发表于 2015-10-6 20:57 | 显示全部楼层
wcymiss 发表于 2014-10-21 21:55
获取数据-防盗链的处理-模拟Cookie:

再次提醒,抓包前请先清除浏览器所有Cookie、缓存、历史数据。

女神,我在抓集思录上的数据,帮我看一下,也取到了Cookie,就是不能取数据,第一次登陆后把COOKIE复制上去就可以,但隔天就不行了,求解.谢谢

TA的精华主题

TA的得分主题

发表于 2015-10-8 21:28 | 显示全部楼层
wcymiss 发表于 2014-10-24 10:57
代理
如果服务器对同一IP有访问次数的限制,我们就要使用代理服务器了。

请教楼主:
(1) .SetProxy 必须在 .Open 前面么?还是在 .send 前面就可以了?

(2)  如果我只创建了一个WinHttpRequest,但中间要GET,POST多个不同的网址,那么第一次设置的代理对后面的还起作用不?是否需要每链接一个网址就要设置一下代理?
.setRequestHeader "Referer", "http://xxx" 是否对后面的链接一样起作用呢?

With CreateObject("WinHttp.WinHttpRequest.5.1")
    .SetProxy 2, "xxx.xxx.xxx.xxx:xxx"    1
    .Open "GET", "
    .send

    .SetProxy 2, "xxx.xxx.xxx.xxx:xxx"    2
    .Open "GET", "
    .send

    .SetProxy 2, "xxx.xxx.xxx.xxx:xxx"    3
    .Open "POST", "
    .send

    ……

End With

TA的精华主题

TA的得分主题

发表于 2015-10-18 16:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
网页抓取运行一段时间后死机,烦恼中,留名
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 00:22 , Processed in 1.062274 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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