Scrapy - 如何从给定网站提取 XmlHttpRequests url?

Aya*_*eld 5 xmlhttprequest web-crawler scrapy

我有兴趣只提取 XHR 的 url,而不是网页中的每个 url: 截图参考

这是我提取页面中每个网址的代码:

import scrapy
import json
from scrapy.selector import HtmlXPathSelector

from scrapy.spiders import CrawlSpider, Rule, Spider
from scrapy.linkextractors import LinkExtractor

class test(CrawlSpider):
    name = 'test'
    start_urls = ['SomeURL']
    filename = 'test.txt'

rules = (

    Rule(LinkExtractor(allow=('', )) ,callback='parse_item'),
)

def parse_item(self, response):
    # hxs = HtmlXPathSelector(response)
    with open ('test.txt', 'a') as f:
        f.write (response.url + '\n' )
Run Code Online (Sandbox Code Playgroud)

谢谢,

编辑:您好,感谢您的评论。经过更多研究后,我发现了这个:Scraping ajax Pages using python 我想要的是自动完成这个答案。我需要对大量网页执行此操作,并且手动插入网址不是一个选项。有没有办法做到这一点?监听站点的 XHR 请求并保存 url?

Gal*_*cio 1

没有可靠、单一的方法来获取网页的“AJAX URL”。网页可以使用任意数量的 AJAX URL(其中大多数都不是您要查找的 URL),并且可以通过非常不同的方式触发它们。

此外,URL 本身很少有用,每个 URL 都可以返回任何类型的数据,并且通常是您感兴趣的数据。

您应该逐个网站手动查找 AJAX URL。