Python 从.exe文件运行spider
我不知道是否已经有关于同一主题的问题了。我的英语不够好,无法理解我在Python 从.exe文件运行spider,python,scrapy,exe,py2exe,Python,Scrapy,Exe,Py2exe,我不知道是否已经有关于同一主题的问题了。我的英语不够好,无法理解我在stackoverflow.com上看到的所有关于网络抓取和从exe文件运行爬行器的主题 因此,如果我问了一个已经在某处得到回答的问题,我很抱歉,但是:在编写我的spider之后,是否可以从exe文件启动它,而不是从scrapy craw xxx启动它?只要点击.exe文件,计算机就会在我爬网的网站上搜索我想要的项目,并会给我一个.csv文件或.json文件。我看到了py2exe,但它似乎是为了我的spider的输出。我不明白
stackoverflow.com
上看到的所有关于网络抓取和从exe文件运行爬行器的主题
因此,如果我问了一个已经在某处得到回答的问题,我很抱歉,但是:在编写我的spider之后,是否可以从exe文件启动它,而不是从scrapy craw xxx
启动它?只要点击.exe文件,计算机就会在我爬网的网站上搜索我想要的项目,并会给我一个.csv文件或.json文件。我看到了py2exe
,但它似乎是为了我的spider的输出。我不明白
我希望我已经足够清楚了(在我的脑海里,法语甚至都不清楚,用英语翻译它真的很难)
非常感谢你的帮助 要运行python脚本,您需要在机器上提供python解释器 因此,如果要分发python脚本(spider),需要确保用户设置了正确的python环境 我 当您与技术人员打交道时,这通常不是问题,只要告诉他们需要
安装python 3.5
(或您正在使用的任何工具),并使用pip
获取所需的模块即可。他们甚至可以自己解决这个问题
二,
如果您与非技术用户打交道,您不希望要求他们使用命令行或必须安装所有依赖项,从而使他们的生活变得艰难
相反,您可以为他们提供一个自包含的包,其中包括:脚本
,python解释器
和所需的附加模块
有几种工具可以为您创建这些软件包:
- PyInstaller-(这可能是最简单的选项)
- Py2exe-
- 其他一些
- 我在这里找到了问题的答案:
感谢您提供的帮助!!我认为这对我来说是更简单的方法…如果名称=main,则必须在
下创建CrawlerProcess的cod:
以避免运行两次并出错
这里还有另一种可能,可以将spider作为独立脚本或可执行文件运行
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
您可以在此处找到更多信息:Hi,如果它不需要是.exe,您可以编写一个脚本,为您完成所有操作。您可以从Windows shell脚本调用python脚本,例如:是的,问题是我想将此程序提供给对编程一无所知的人。我只是想让他们更容易地使用我的蜘蛛。你认为你的解决方案更容易?我不知道在你的具体情况下什么更容易。但是,您可以编写一个简单的bat文件,用户只需单击即可。您可以将python3.5放入pythonscript.py,它将执行spider:您只需创建自己的模块并指定依赖项。然后,用户将能够
pip安装一个模块,pip将为他们安装所有依赖项:谢谢您的回答。然而,我已经看过py2exe(它似乎是我问题的解决方案),但我不明白它是如何工作的。你能用简单的话给我解释一下吗?它似乎适用于一个简单的python脚本,但我不知道它如何适用于一个粗糙的脚本…请先尝试PyInstaller,因为它是最简单的选项。您可以在网站上找到相关说明。使用pyinstaller,创建了一个目录dist,还创建了一个.exe文件。但它不会抓取我想要抓取的网站。还有其他有用的主意吗?