Python 内部服务器错误

Python 内部服务器错误,python,flask,beautifulsoup,web-crawler,Python,Flask,Beautifulsoup,Web Crawler,这就是我的routes.py的样子。基本上,它是一个爬行器,可以在一个页面中爬行所有youtube视频链接。这段代码在独立的情况下运行良好(不是在烧瓶中)。然而,当我试图通过flask使其工作时,它抛出500个内部服务器错误。任何形式的帮助都将不胜感激 from flask import Flask, render_template from BeautifulSoup import BeautifulSoup import requests app = Flask(__name__) @ap

这就是我的routes.py的样子。基本上,它是一个爬行器,可以在一个页面中爬行所有youtube视频链接。这段代码在独立的情况下运行良好(不是在烧瓶中)。然而,当我试图通过flask使其工作时,它抛出500个内部服务器错误。任何形式的帮助都将不胜感激

from flask import Flask, render_template
from BeautifulSoup import BeautifulSoup
import requests
app = Flask(__name__)

@app.route("/")
def main():
    url="https://www.youtube.com/user/EminemVEVO/videos"
    source_code=requests.get(url)
    text_source_code=source_code.text
    final_code=BeautifulSoup(text_source_code)
    video_url=final_code.findAll('a',{'class':'yt-uix-sessionlink yt-uix-tile-link  spf-link  yt-ui-ellipsis yt-ui-ellipsis-2'})

    for i in video_url:
        if "/watch?v=" in i.get('href'):
            j= i.get('href')
            j=j.replace("/watch?v=","")
            print "http://youtube.com"+j

if __name__ == '__main__':
    app.run()
堆栈跟踪在下面

Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1478, in full_dispatch_request
    response = self.make_response(rv)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1566, in make_response
    raise ValueError('View function did not return a response')
ValueError: View function did not return a response
路由到
'/'
main()
方法不会返回任何值。您可以将youtube URL打印到控制台,但不会将任何内容发送回客户端。Flask不喜欢这样,很可能这不是你想要的

将URL列表返回给用户:

@app.route("/")
def main():
    ...

    data_to_return = []
    for i in video_url:
        if "/watch?v=" in i.get('href'):
            j= i.get('href')
            j=j.replace("/watch?v=","")
            data_to_return.append("http://youtube.com"+j)
    return '\n'.join(data_to_return)

可以添加堆栈跟踪吗?也可以重新格式化代码(虽然不是太糟糕),谢谢。工作完美:)