【发布时间】:2015-02-28 19:22:52
【问题描述】:
我发现很多Scrapy 教程(例如this good tutorial)都需要下面列出的步骤。结果是一个项目,包含大量文件(project.cfg + 一些 .py 文件 + 特定文件夹结构)。
如何使这些步骤(如下所列)作为一个独立的 python 文件运行,可以使用 python mycrawler.py 运行?
(而不是一个包含大量文件、一些 .cfg 文件等的完整项目,并且必须使用 scrapy crawl myproject -o myproject.json... 顺便说一句,scrapy 似乎是一个新的 shell 命令? 这是真的吗?)
注意:here could be an answer to this question 但不幸的是,它已被弃用且不再有效。
1) 使用scrapy startproject myproject创建一个新的scrapy项目
2) 像这样用Item 定义数据结构:
from scrapy.item import Item, Field
class MyItem(Item):
title = Field()
link = Field()
...
3) 定义爬虫
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class MySpider(BaseSpider):
name = "myproject"
allowed_domains = ["example.com"]
start_urls = ["http://www.example.com"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
...
4) 运行:
scrapy crawl myproject -o myproject.json
【问题讨论】:
-
如何使步骤(如下所列)作为一个独立的 python 文件工作,可以使用 python mycrawler.py 运行?你能简单解释一下这个说法吗..
-
@vikasdumca 事实上,这些教程 (amaral-lab.org/blog/…) 没有展示如何制作可在一个脚本中运行的代码。我希望能够在一个文件
testcrawler.py中执行 amaral-lab.org/blog/… 并能够使用python testcrawler.py运行它,而不必运行scrapy ...
标签: python web-scraping scrapy web-crawler