V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
godwow
V2EX  ›  Python

求解诡异问题本地可以,放服务器上跑报错, urllib.error.HTTPError: HTTP Error 503

  •  
  •   godwow · 2018-07-20 17:22:55 +08:00 · 2517 次点击
    这是一个创建于 2336 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用的 Python3 版本,基于 flask 写的 web 网站,python3 app.py 直接跑起来后,用 nginx 做代理访问。本机测试时可以爬取网页内容,放在服务器上就报: urllib.error.HTTPError: HTTP Error 503: Service Temporarily Unavailable。 测试过服务器和要爬的地址是通的,代理 ip 也是可用的。

    直接上源码:

    def search(name):
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'}
        chaper_url = "https://cn.torrentkitty.tv/search/%s/" % parse.quote(name)
        cookie = cookiejar.CookieJar()
        handler = request.HTTPCookieProcessor(cookie)
        proxy_handler = request.ProxyHandler({'http': 'http://101.96.11.5:80'})
        opener = request.build_opener(handler, proxy_handler)
        myRequest = request.Request(url=chaper_url, headers=headers)
        myResponse = opener.open(myRequest)
    
    10 条回复    2018-07-20 18:53:23 +08:00
    findstrx
        1
    findstrx  
       2018-07-20 17:57:36 +08:00
    你需要一个 Docker...
    godwow
        2
    godwow  
    OP
       2018-07-20 18:07:58 +08:00 via Android
    @findstrx 能说清楚点吗,docker 和服务器有什么区别吗,对了我是放在国外的 vps 上跑有问题
    misaka19000
        3
    misaka19000  
       2018-07-20 18:10:38 +08:00
    我有点晕了 你究竟是把网站放到服务器上面还是把爬虫放到服务器上面?
    godwow
        4
    godwow  
    OP
       2018-07-20 18:12:37 +08:00 via Android
    @misaka19000 网站放服务器上了,里面有段爬网页的代码
    misaka19000
        5
    misaka19000  
       2018-07-20 18:21:07 +08:00
    这个 503 是你自己的服务报的还是远程主机返回的
    godwow
        6
    godwow  
    OP
       2018-07-20 18:23:54 +08:00 via Android
    @misaka19000 远程主机报的错误,爬页面的时候报错了,上面是爬页面的代码
    godwow
        7
    godwow  
    OP
       2018-07-20 18:34:19 +08:00 via Android
    又要沉了,真心想不到什么原因😭
    yongzhong
        8
    yongzhong  
       2018-07-20 18:38:42 +08:00
    本机->代理->爬取页 √
    服务器->代理->爬取页 ×

    检查过服务器到代理是否可行?代理是否如期成功?
    godwow
        9
    godwow  
    OP
       2018-07-20 18:51:09 +08:00 via Android
    @yongzhong 不加代理本机也是可以,服务器不行。在服务器上 telnet 代理 ip 和端口是通的
    godwow
        10
    godwow  
    OP
       2018-07-20 18:53:23 +08:00 via Android
    @yongzhong 服务器上不行,才加的代理测试了下,还是不行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:41 · PVG 11:41 · LAX 19:41 · JFK 22:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.