一旦我初始化它的对象,Scrapy能够废弃数据吗?

时间:2015-07-09 07:40:38

标签: scrapy scrapy-spider

当我在类中调用函数scrap.crawl(“website”)时,Scrapy是否可以这样做,它会重定向到刮擦代码所在的类并执行该函数。

我试图找到各种来源,并且大多要求我把它写成脚本表格。但是找不到任何可以告诉我如何初始化对象以便调用脚本的工作示例。

接近这段代码,但它没有用。

class DmozSpider(Spider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
    "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
    "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]

def parse(self, response):
    for sel in response.xpath('//ul/li'):
        loader = DmozItemLoader(DmozItem(), selector=sel, response=response)
        loader.add_xpath('title', 'a/text()')
        loader.add_xpath('link', 'a/@href')
        loader.add_xpath('desc', 'text()')
        yield loader.load_item()

调用对象?

spider = DmozSpider()

任何一个有我想要的工作榜样的灵魂?

1 个答案:

答案 0 :(得分:0)

为此,你需要一个非常复杂的结构 - 如果我理解你的问题。

如果您拥有蜘蛛实例,则需要设置if($message == "changeSuccess") { //code } else if($message == "changeSuccessMenu") { //code } else { //code } 并在之后启动它。例如:

Crawler

这是基础,但您应该可以开始使用它。但是正如我之前所说的那样,它非常复杂,你需要一些配置才能让它运行。

<强>更新

如果您有一个网址并希望Scrapy抓取该网站,您可以这样做:

crawler = Crawler(get_project_settings())
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
crawler.configure()
crawler.crawl(spider)
crawler.start()

然后开始像上面描述的那样爬行。因为Scrapy蜘蛛一旦你打电话就开始了,你需要设置起始URL然后开始的正确顺序。