测试 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
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