我想用刮擦来爬行网页。有办法从终端本身传递起始URL吗?
在文档中,可以给出蜘蛛的名称或URL,但是当我给出url时它会抛出一个错误:
//我的蜘蛛的名字就是例子,但是我给出的是url而不是我的蜘蛛名(如果我给蜘蛛命名的话,效果会很好)。
抓取性爬行example.com
错误:
文件"/usr/local/lib/python2.7/dist-packages/Scrapy-0.14.1-py2.7.egg/scrapy/spidermanager.py",第43行,在create (“蜘蛛未找到:%s”% spider_name) KeyError中:‘蜘蛛未找到: example.com’
我怎样才能把我的蜘蛛用在终端的url上呢?
发布于 2012-03-13 11:00:35
我不太确定命令行选项。然而,你可以这样写你的蜘蛛。
class MySpider(BaseSpider):
name = 'my_spider'
def __init__(self, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
self.start_urls = [kwargs.get('start_url')] 并启动如下:scrapy crawl my_spider -a start_url="http://some_url"
发布于 2013-03-08 10:34:25
允许多个url-参数比Peter建议的更简单的方法是将它们作为一个字符串,其中url由逗号分隔,如下所示:
-a start_urls="http://example1.com,http://example2.com"在蜘蛛中,您只需将字符串拆分到',‘,并获得一个urls数组:
self.start_urls = kwargs.get('start_urls').split(',')发布于 2012-03-15 11:49:45
使用scrapy解析命令。你可以用你的蜘蛛解析一个网址。url从命令中传递。
$ scrapy parse http://www.example.com/ --spider=spider-namehttp://doc.scrapy.org/en/latest/topics/commands.html#parse
https://stackoverflow.com/questions/9681114
复制相似问题