【问题标题】:Unable to scrape Javascript website - API Calls / XHR request无法抓取 Javascript 网站 - API 调用/XHR 请求
【发布时间】:2021-03-07 08:06:36
【问题描述】:

我无法抓取依赖 Java 脚本的网站。我需要从 API 调用中获取学校列表,该 API 调用使用 XHR 请求发送到服务器,该请求获取 JSON 对象

我使用与 XHR 请求相同的请求标头,包括 cookie 值。不知道为什么它不起作用。它基本上给出了超时错误。附上来自 google chrome 请求标头(网络选项卡)的 Python 代码和屏幕截图以及来自 vs 代码终端的错误:

# -*- coding: utf-8 -*-
import scrapy
import json

class SchoolSpider(scrapy.Spider):
    name = 'school'
    # allowed_domains = ['www.directory.ntschools.net']
    # start_urls = ['https://www.directory.ntschools.net/api/System/GetAllSchools/']

    headers = {'Accept': 'application/json',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
    'Connection': 'keep-alive',
    'Cookie': 'BIGipServerdirectory.ntschools.net_443.app~directory.ntschools.net_443_pool=360972810.20480.0000',
    'Host': 'directory.ntschools.net',
    'Referer': 'https://directory.ntschools.net/',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
    'X-Requested-With': 'Fetch'}


    def start_requests(self):
        yield scrapy.Request(url='https://www.directory.ntschools.net/api/System/GetAllSchools/',headers= self.headers,callback=self.parse)

    def parse(self, response):
        print(json.loads(response.body))

【问题讨论】:

    标签: javascript python json scrapy xmlhttprequest


    【解决方案1】:

    我想我现在知道我做错了什么。我使用了错误的 api url,其中包含“www”,而原始 url 没有。我的错。感谢那些为此投入时间的人。干杯

    【讨论】:

      猜你喜欢
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 2019-10-28
      • 2015-06-24
      • 2020-09-08
      • 1970-01-01
      相关资源
      最近更新 更多