使用scrapy parse函数来解析特定的url

时间:2012-10-14 04:08:06

标签: python scrapy

我有一个scrapy履带式工作正常。 我现在想用它的'parse'函数来解析给定的url。 虽然存在一个命令行实用程序,可以使用命令对单个URL执行此操作:

scrapy parse <options> <url>

但我想在我的python代码中执行此操作(并且没有为每个url启动新进程不是一个选项)

根据我的想法,我需要的是基本上一种创建响应给定URL的方法。 由于scrapy采取的响应与HTTPResponse不同,我不确定如何在给定URL的情况下获得响应。

我确实找到了一个方法make_reqests_from_url,它显而易见,但我不知道如何从scrapy请求获得scrapy响应,我可以将其传递给解析函数。

2 个答案:

答案 0 :(得分:0)

管理好了解。

基本上,我只需要传递响应主体,url和scrapy请求来创建响应对象。

bs = BaseSpider('some')
head = 'www.mywebsite.com'
httpcon = httplib.HTTPConnection(head)
tail = '/mypage.html'
httpcon.request('GET',tail)
sreq = bs.make_requests_from_url(link)
sresp = TextResponse(url=link,status=200,body=httpcon.getresponse(),encoding='utf-8')

答案 1 :(得分:0)

一个快速的kludge(包含来自herehere的内容)以防与OP不同,subprocess是一个选项。

import subprocess
bashCommand = "Scrapy fetch http://www.testsite.com/testpage.html"
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
page, scrapy_meta_info = process.communicate()