zoukankan      html  css  js  c++  java
  • 批量采集世纪佳缘会员图片及winhttp异步采集效率

    原始出处:http://www.cnblogs.com/Charltsing/p/winhttpasyn.html

    最近老有人问能不能绕过世纪佳缘的会员验证来采集图片,我测试了一下,发现是可以的。

    同时也测试了winhttp异步采集的效率。(在vba里面使用winhttp开发速度快)

    经过测试,在网站不忙的情况下,检索一万个会员大约只需要三分钟或者更少的时间。

    下面简单说一下如何使用winhttp做并发采集:

    1、在类模块里面建立winhttp的各种事件,用于处理error和response数据。建立一个bool变量指示该实例是否空闲。

    2、在标准模块中,根据uid自动生成url,并建立一个索引变量,用于指示已经发送的网站URL的序号。

    3、在标准模块中创建winhttp实例数组,用于并发。数量推荐不要超过1000,具体和网络及电脑配置有关。

    4、在do while循环中监测winhttp实例数组,如果有空闲的即设置url启动request。

    具体winhttp类模块中的事件写法,请自行百度。

    技术交流请联系qq:564955427

    附一个简单的winhttp类,vba使用

    Dim WithEvents winhttp As WinHttpRequest
    
    Private Sub WebGetRequest(URL As String)
        Set winhttp = New WinHttpRequest
        With winhttp
            .Open "GET", URL, True
            .send
        End With
    End Sub
    
    Private Sub winhttp_OnError(ByVal ErrorNumber As Long, ByVal ErrorDescription As String)
        Debug.Print ErrorDescription                 '出错时候的错误描述
    End Sub
    
    Private Sub winhttp_OnResponseFinished()
        Debug.Print winhttp.responseText             '数据加载完成
    End Sub
    Private Sub winhttp_OnResponseDataAvailable(Data() As Byte)
                                                     '有数据到达...
    End Sub
    Private Sub winhttp_OnResponseStart(ByVal Status As Long, ByVal ContentType As String)
                                                     '载入数据的事件,Status是状态,ContentType是头部消息
    End Sub
  • 相关阅读:
    【CF932E】Team Work
    【ZJOI2011】看电影
    【CQOI2011】放棋子
    【HAOI2010】计数
    【HNOI2009】有趣的数列
    【ZJOI2010】排列计数
    【FJOI2016】建筑师
    【USACO10 OPEN】三角形计数
    【HNOI2012】排队
    【HNOI2008】越狱
  • 原文地址:https://www.cnblogs.com/Charltsing/p/winhttpasyn.html
Copyright © 2011-2022 走看看