如何创建一个调用pythonweb抓取脚本的web服务?

如何创建一个调用pythonweb抓取脚本的web服务?,python,python-2.7,web-scraping,bottle,Python,Python 2.7,Web Scraping,Bottle,我是一名python初学者,我需要一些帮助来创建一个调用python web scraping脚本(课程任务)的web服务 我可以使用瓶子来创建web服务。我想使用static_文件来调用脚本,但我不确定,因为文档中说static_文件是用于CSS的 其想法是首先创建web服务,然后使用服务器上的web抓取脚本 感谢哥伦比亚的帮助和问候 另外,我的英语不是很好,但我希望有人能理解我并帮助我。你可以试试我找到的这本指南: 对于xpath,我建议使用带有“Firebug”插件的Mozilla Fi

我是一名python初学者,我需要一些帮助来创建一个调用python web scraping脚本(课程任务)的web服务

我可以使用瓶子来创建web服务。我想使用static_文件来调用脚本,但我不确定,因为文档中说static_文件是用于CSS的

其想法是首先创建web服务,然后使用服务器上的web抓取脚本

感谢哥伦比亚的帮助和问候


另外,我的英语不是很好,但我希望有人能理解我并帮助我。

你可以试试我找到的这本指南:

对于xpath,我建议使用带有“Firebug”插件的Mozilla Firefox。它可以为您生成XPath,这将帮助您更快地编写脚本

  • 除非它已经在一个函数中,否则请编辑您的刮片脚本,使您的代码包含在一个函数中,该函数返回您想要的任何信息。它应该像缩进所有未缩进的内容并添加一个
    def main():
  • 假设您的脚本名为scraper.py,它与瓶子控制器一起位于控制器文件的顶部,添加一个
    导入scraper
  • 在回调中,您可以调用
    scraper.main()
  • (不确定为什么在此处粘贴代码不会格式化,请参见下文)

    话虽如此,在请求中使用长时间运行的脚本(如刮取脚本)通常是不好的做法。您通常希望使用一个刮片作业队列,在该队列中,您的控制器发布要执行的工作,您的刮片子系统向其发送消息,并在完成时通知它在某处缓存结果

    from bottle import route, run
    import scraper
    
    @route('/scrape')
    def scrape():
        return scraper.main()
    

    为什么瓶子控制器中没有废弃代码?嗨,Josep,因为我在开始使用瓶子之前创建了脚本。我是否需要重复它(废弃脚本)?谢谢你好,乔塞普,我理解导入“刮板机”的想法,但是我怎么能从用瓶子创建的web服务中调用呢?使用瓶子功能静态文件?再次感谢我原谅我的无知。@DanielRomero我添加了一个最小的代码示例;您可能需要浏览一些基本的Python教程。仅供参考,它是scraper(还有scrape,scraped,scraping)而不是scraper