测试 scrapy 蜘蛛仍在工作 - 查找页面更改

Test scrapy spider still working - find page changes

How can I test a scrapy spider against online data.

我现在从 this post 得知可以针对 离线 数据测试蜘蛛。

我的目标是检查我的蜘蛛是否仍然从页面中提取正确的数据,或者页面是否发生了变化。我通过 XPath 提取数据,有时页面接收和更新,我的抓取工具不再工作。我希望测试尽可能接近我的代码,例如。使用 spider 和 scrapy 设置并连接到 parse 方法。

参考你提供的link,你可以试试这个在线测试的方法,我用的这个方法和你的问题差不多。您所要做的就是不用从文件中读取请求,您可以使用 Requests 库为您获取实时网页,并根据您从 Requests 获得的响应编写一个简单的响应,如下所示

import os
import requests

from scrapy.http import Response, Request

def online_response_from_url (url=None):

    if not url:
        url = 'http://www.example.com'

    request = Request(url=url)


    oresp = requests.get(url)

    response = TextResponse(url=url, request=request,
    body=oresp.text, encoding = 'utf-8')

    return response