用Scrapy破坏AJAX网站

时间:2018-10-25 11:38:28

标签: ajax scrapy

自从过去两天以来,我一直在寻找问题的答案,但现在我很沮丧。我发现了很多有关此的内容,但没有任何帮助实现目标。这段漫长的段落的目的是提醒您,请不要链接stackoverflow的先前答案以供参考。请为我提供简单整洁的解决方案/答案。 我想从https://www.premierleague.com/players抓取玩家数据 但是在向下滚动页面时我遇到了ajax。 我的队友要求我不要使用硒。他要求我仅将Scrapy用于此目的。 因此,请简单地说出Scrapy是否可行。 &如果可能的话如何。 我会感谢你的。

1 个答案:

答案 0 :(得分:0)

简单

打开检查元素或Firebug

切换到“网络”标签,然后单击XHR

然后开始向下滚动页面

您将看到他们正在发送AJAX请求

只需检查他们将请求发送到哪个URL,并检查正在发送的表单数据

headers = {
    'Referer': 'https://www.premierleague.com/players',
    'Origin': 'https://www.premierleague.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
    'DNT': '1',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}

params = {
    'pageSize': '30',
    'compSeasons': '210',
    'altIds': 'true',
    'page': '0',
    'type': 'player',
    'id': '-1',
    'compSeasonId': '210',
}

yield Request('https://footballapi.pulselive.com/football/players?%s' % (urllib.urlencode(params)), headers=headers)