我设法编写了一个Scrapy项目,用于从网页上删除数据,当我在命令行使用scrapy crawl dmoz -o items.json -t json
调用它时,它成功地将已删除的数据输出到JSON文件。
然后我写了另一个脚本,它接受JSON文件,加载它,改变数据的组织方式(我不喜欢它的组织的默认方式),并将其作为第二个JSON文件吐出。然后我使用Django的manage.py loaddata fixture.json
命令将第二个文件的内容加载到Django数据库中。
现在,我感觉我会在三个单独的步骤中被大笑出来,但是我不太确定如何将它们整合到一个脚本中。首先,我不能让我的Scrapy项目以我想要的方式输出我的数据,这似乎真的很愚蠢。但是,我在哪里放置代码来修改Feed exports
输出数据的'默认'方式?它会进入我的pipelines.py
文件吗?
其次,我想从python脚本中调用scraper,然后将生成的JSON fixture加载到我的数据库中。这就像放置类似的东西一样简单:
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log
from testspiders.spiders.followall import FollowAllSpider
spider = FollowAllSpider(domain='scrapinghub.com')
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run()
在我的脚本的顶部,然后用以下内容跟随它:
from django.something.manage import loaddata
loaddata('/path/to/fixture.json')
?最后,相对于我的Django项目和Scrapy项目,该脚本是否有任何特定的位置才能正常工作?
答案 0 :(得分:1)
如果出现任何问题,请在此处发布另一个问题,其中包含相关代码以及尝试过的内容,我确信有人会很乐意为您提供帮助。 :)