在 Scrapy 中将列表作为参数传递
Passing list as arguments in Scrapy
我正在尝试使用 Flask 和 Scrapy 构建应用程序。我必须将 url 的 list
传递给蜘蛛。我尝试使用以下语法:
__init__: in Spider
self.start_urls = ["http://www.google.com/patents/" + x for x in u]
Flask Method
u = ["US6249832", "US20120095946"]
os.system("rm static/s.json; scrapy crawl patents -d u=%s -o static/s.json" % u)
我知道可以通过读取具有所需 url 的文件来完成类似的事情,但是我可以传递 url 列表以供抓取吗?
重写蜘蛛的 __init__()
方法:
class MySpider(Spider):
name = 'my_spider'
def __init__(self, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
endpoints = kwargs.get('start_urls').split(',')
self.start_urls = ["http://www.google.com/patents/" + x for x in endpoints]
并通过 -a
命令行参数传递端点列表:
scrapy crawl patents -a start_urls="US6249832,US20120095946" -o static/s.json
另请参阅:
- How to give URL to scrapy for crawling?
请注意,您还可以从脚本运行 Scrapy:
- How to run Scrapy from within a Python script
- Scrapy Very Basic Example
我正在尝试使用 Flask 和 Scrapy 构建应用程序。我必须将 url 的 list
传递给蜘蛛。我尝试使用以下语法:
__init__: in Spider
self.start_urls = ["http://www.google.com/patents/" + x for x in u]
Flask Method
u = ["US6249832", "US20120095946"]
os.system("rm static/s.json; scrapy crawl patents -d u=%s -o static/s.json" % u)
我知道可以通过读取具有所需 url 的文件来完成类似的事情,但是我可以传递 url 列表以供抓取吗?
重写蜘蛛的 __init__()
方法:
class MySpider(Spider):
name = 'my_spider'
def __init__(self, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
endpoints = kwargs.get('start_urls').split(',')
self.start_urls = ["http://www.google.com/patents/" + x for x in endpoints]
并通过 -a
命令行参数传递端点列表:
scrapy crawl patents -a start_urls="US6249832,US20120095946" -o static/s.json
另请参阅:
- How to give URL to scrapy for crawling?
请注意,您还可以从脚本运行 Scrapy:
- How to run Scrapy from within a Python script
- Scrapy Very Basic Example