如何抓取网站上显示的内容,而不是网站源页面上的内容?

时间:2019-07-31 10:56:41

标签: scrapy web-crawler

我正在尝试为他们的所有现场赛事和相应赔率刮一个投注网站。

我在Scrapy Shell中验证了xpath响应,非常好,但是当我想从span标签提取文本时,没有响应。然后,我检查了网站的源页面,实际上,我尝试抓取的节点中没有文本。这是源页面中的代码:

<div class="sports-body" data-bind="visible: anyNonStarred">
                                        <div class="league-title js-toggle-region">
                                            <span class="icon arrow grey" data-bind="css:{selected:isExpanded}"></span>
                                            <!-- ko if: $data.flagName && $data.flagName() -->
                                            <span data-bind="attr:{'class':cssmap('flag flag-' + flagName())}"></span>
                                            <!-- /ko -->
                                            <span data-bind="text:name"></span>
                                        </div>

这是因为该网站正在使用JavaScript吗?如果是这样,我怎么刮呢? Scrapy可以处理吗?

网址为:https://ro.betano.com/live/

1 个答案:

答案 0 :(得分:0)

从脚本中加载的那些缺失项意味着来自动态请求。您无法从页面源中获取这些元素。为此,您应该尝试一些动态抓取工具。

  1. Scrapy和Splash是您可以使用的嵌套组合。 (Check this)。
  2. 尝试Selenium,使用selenium,我们正在使用与浏览器完全相同的方法。如果我们可以在浏览器检查部分中找到元素,则可以肯定地将其添加到硒中。