如何抓取未显示其数据的网页?

时间:2019-07-15 04:18:15

标签: html web-scraping

我要抓取以下网页:

  

https://charlotte.realforeclose.com/index.cfm?zaction=AUCTION&Zmethod=PREVIEW&AUCTIONDATE=07/16/2019

您可以看到,有很多数据,但是当我“显示源代码”时,下面的html就是您感兴趣的数据。所有数据来自哪里?如何显示不在html中的内容?

<div class="Head_W">
    <div tabindex="0"  tabindex="0"  class="Sub_Title">Auctions Waiting</div>
    <div   class="Fadebar"></div>
        <div tabindex="0"  class="PageFrame" area="W">
            <span class="PageLeft"><img src="/CORE/System/Themes/Theme_1/Images/Common/blank.gif" alt="" width="41" height="16" align="absmiddle"  /></span>
            <span tabindex="0" class="PageText">page <input id="curPWA" type="text" curPG="" />  of <span id="maxWA"></span> </span>
            <span class="PageRight"><img src="/CORE/System/Themes/Theme_1/Images/Common/blank.gif" alt="" width="41" height="16" align="absmiddle" /></span>
        </div>
    <div   id="Area_W" class="Auct_Area" ref="Y" arid="W">
        <div tabindex="0"  class="Loading"></div>
    </div>
    <div  class="Fadebar"></div>
        <div tabindex="0"  class="PageFrame" area="W">
            <span class="PageLeft"><img src="/CORE/System/Themes/Theme_1/Images/Common/blank.gif" alt="" width="41" height="16" align="absmiddle"  /></span>
            <span tabindex="0"class="PageText">page  <input id="curPWB" type="text" curPG=""/>  of <span id="maxWB"></span> </span>
            <span class="PageRight"><img src="/CORE/System/Themes/Theme_1/Images/Common/blank.gif" alt="" width="41" height="16" align="absmiddle" /></span>
        </div>
</div>

1 个答案:

答案 0 :(得分:1)

网站https://charlotte.realforeclose.com使用AJAX。您需要做一些逆向工程,以了解其工作原理。

打开Chrome,按 F12 打开开发人员工具,或从菜单中选择选项。

open chrome dev tools

打开网络选项卡,选择XHR过滤器,将URL https://charlotte.realforeclose.com/index.cfm?zaction=AUCTION&Zmethod=PREVIEW&AUCTIONDATE=07/16/2019粘贴到浏览器地址栏中,然后按Enter。网页加载时,检查“网络”选项卡上登录的XHR。首先检查具有更大响应大小的XHR。

XHRs

单击列表中的请求并检查详细信息。这是请求的URL,标题和参数。

XHR request details

响应内容。

XHR response

由于requests方法是GET,因此您只需将URL粘贴到地址栏并检索内容即可。我的网址是:

https://charlotte.realforeclose.com/index.cfm?zaction=AUCTION&Zmethod=UPDATE&FNC=LOAD&AREA=W&PageDir=0&doR=1&tx=1563171184890&bypassPage=1&test=1&_=1563171184890
https://charlotte.realforeclose.com/index.cfm?zaction=AUCTION&Zmethod=UPDATE&FNC=LOAD&AREA=C&PageDir=0&doR=1&tx=1563171185129&bypassPage=0&test=1&_=1563171185129

稍作播放后,您可以轻松地找到参数AREA=W的“等待拍卖”部分,以及AREA=C的“关闭或取消拍卖”部分。似乎根本不需要参数txbypassPagetest_

使用PageDir=0doR=1打开第一页,然后使用PageDir=1doR=0导航到下一页,使用PageDir=-1和前一页导航到上一页doR=0

第一页https://charlotte.realforeclose.com/index.cfm?zaction=AUCTION&Zmethod=UPDATE&FNC=LOAD&AREA=W&PageDir=0&doR=1

response for first page

下一页https://charlotte.realforeclose.com/index.cfm?zaction=AUCTION&Zmethod=UPDATE&FNC=LOAD&AREA=W&PageDir=1&doR=0

response for next page

最后,您只需要从应用程序中复制XHR并解析响应。根据HTTP请求的实现,您可能还需要添加必要的标头和cookie处理。