我不知道是否已就同一主题提出疑问。我的英语不够好,无法理解我在stackoverflow.com
上看到的关于网页抓取和从exe文件运行蜘蛛的所有主题。
所以,如果我问一个已经在某处已经回答的问题,我很抱歉:在编写我的蜘蛛之后,是否有可能从exe文件启动它而不是从scrapy crawl xxx
启动它?只需单击.exe文件,计算机就会在我抓取的网站上搜索我想要的项目,并会给我一个.csv文件或.json文件。我看到py2exe
,但它似乎是我蜘蛛的输出。我不明白。
我希望我已经足够清楚了(在我的脑海里,法语还不清楚,用英语翻译真的很难。)
非常感谢你的帮助!!
答案 0 :(得分:2)
要运行python脚本,您需要在计算机上提供python解释器。
因此,如果您想分发您的python脚本(您的蜘蛛),您需要确保您的用户设置了正确的python环境。
当您与技术人员打交道时,这通常不是问题,只需告诉他们他们需要install python 3.5
(或您正在使用的任何内容)并使用pip
获取所需的模块。他们甚至可能自己解决这个问题。
如果您正在与非技术用户打交道,那么您不希望他们要求他们使用命令行或必须安装所有依赖项。
相反,您可以为他们提供自包含包,其中包括:your script
,python interpreter
和必需additional modules
。
有几种工具可以为您创建这些包:
另请参阅stackoverflow上提出的这些问题:
答案 1 :(得分:0)
我在这里找到了我的问题的答案:How do I package a Scrapy script into a standalone application?
感谢@juwi提供的帮助!!我觉得这对我来说更简单......
答案 2 :(得分:0)
你必须在 if __name__=='__main__':
下制作 CrawlerProcess 的 cod 以避免运行两次和错误
这是将蜘蛛作为独立脚本或可执行文件运行的另一种可能性
import scrapy
from scrapy.crawler import CrawlerProcess
class MySpider(scrapy.Spider):
# Your spider definition
if __name__=='__main__':
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
})
process.crawl(MySpider)
process.start() # the script will block here until the crawling is finished
您可以在此处找到更多信息:https://doc.scrapy.org/en/1.0/topics/practices.html