gpt4 book ai didi

javascript - 可以使用 scrapy 从使用 AJAX 的网站中抓取动态内容吗?

转载 作者:IT老高 更新时间:2023-10-28 12:31:31 26 4
gpt4 key购买 nike

我最近一直在学习 Python,并且正在着手构建一个网络爬虫。这一点都不花哨。它的唯一目的是从博彩网站获取数据并将这些数据放入 Excel。

大部分问题都是可以解决的,但我遇到了一些麻烦。但是,我在一个问题上遇到了巨大的障碍。如果一个网站加载了一张马匹表格并列出了当前的投注价格,则此信息不在任何源文件中。线索是这些数据有时是实时的,数字显然是从某个远程服务器更新的。我 PC 上的 HTML 有一个漏洞,他们的服务器正在推送我需要的所有有趣数据。

现在我对动态网络内容的体验很低,所以这件事让我难以理解。

我认为 Java 或 Javascript 是一个关键,这经常弹出。

爬虫只是一个赔率比较引擎。有些网站有 API,但对于那些没有的网站,我需要它。我在 Python 2.7 中使用了 scrapy 库

如果这个问题过于开放,我深表歉意。简而言之,我的问题是:如何使用scrapy来抓取这些动态数据,以便我可以使用它?这样我就可以实时抓取这些投注赔率数据?

最佳答案

这是一个带有 AJAX 请求的 scrapy 的简单示例。让我们看看网站rubin-kazan.ru .

所有消息都使用 AJAX 请求加载。我的目标是获取这些消息及其所有属性(作者、日期、...):

enter image description here

当我分析页面的源代码时,我看不到所有这些消息,因为该网页使用了 AJAX 技术。但我可以使用 Mozilla Firefox 中的 Firebug(或其他浏览器中的等效工具)来分析在网页上生成消息的 HTTP 请求:

enter image description here

它不会重新加载整个页面,而只会重新加载包含消息的页面部分。为此,我单击底部的任意数量的页面:

enter image description here

我观察到负责消息正文的 HTTP 请求:

enter image description here

完成后,我分析请求的 header (我必须引用我将从 var 部分的源页面中提取的此 URL,请参见下面的代码):

enter image description here

以及请求的表单数据内容(HTTP方式为“Post”):

enter image description here

以及响应的内容,是一个JSON文件:

enter image description here

它提供了我正在寻找的所有信息。

从现在开始,我必须在scrapy中实现所有这些知识。让我们为此目的定义蜘蛛:

class spider(BaseSpider):
name = 'RubiGuesst'
start_urls = ['http://www.rubin-kazan.ru/guestbook.html']

def parse(self, response):
url_list_gb_messages = re.search(r'url_list_gb_messages="(.*)"', response.body).group(1)
yield FormRequest('http://www.rubin-kazan.ru' + url_list_gb_messages, callback=self.RubiGuessItem,
formdata={'page': str(page + 1), 'uid': ''})

def RubiGuessItem(self, response):
json_file = response.body

parse 函数中,我有第一个请求的响应。在 RubiGuessItem 我有包含所有信息的 JSON 文件。

关于javascript - 可以使用 scrapy 从使用 AJAX 的网站中抓取动态内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8550114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com