设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 21988|回复: 1
打印 上一主题 下一主题

一个用python写的用命令行看糗百的小工具

[复制链接]

0

主题

0

好友

14

积分

新手上路

Rank: 1

楼主
发表于 2014-6-3 14:17:06 |显示全部楼层
楼主点赞 下载下来学习
我在运行时爆了一个HTTPError,详细信息如下:
----------------------------------------
糗百命令行版——Byron
一入糗百深似海,从此节操是路人
输入"q"退出程序
----------------------------------------
输入要看的页数1~280:1
------------------第1页------------------
url is :http://www.qiushibaike.com/week/page/1
Traceback (most recent call last):
  File "qb.py", line 48, in <module>
    if_qb()
  File "qb.py", line 41, in if_qb
    for_qb()
  File "qb.py", line 30, in for_qb
    qiubai(page)
  File "qb.py", line 14, in qiubai
    html = urllib2.urlopen(url).read()
  File "C:\Python27\lib\urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 410, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 502: Proxy Error ( The specified network name
o longer available.  )
----------------------------------------
其中url是我输出的urlopen的地址,改地址在浏览器可以打开
想问一下是否是我本地上网用的是代理的原因?如果是怎么解决?
如果不是这个原因应该怎么办?

回复

使用道具 举报

0

主题

0

好友

14

积分

新手上路

Rank: 1

沙发
发表于 2014-6-3 16:30:17 |显示全部楼层
本帖最后由 Heinrich 于 2014-6-3 16:31 编辑
crossin先生 发表于 2014-6-3 15:10
确实似乎是代理的问题。可以把代理关掉吗

先生,我现在在单位,公司通过一个代理统一上网,所以去不掉。
然后有了以下探索……
我刚才添加了
try:
        if_qb()
except urllib2.HTTPError as e:
        print e.code
        print e.read()
错误输出中有一句
        <LI id=L_64_12>Error Code 64: Host not available
<LI id=L_64_13>Background: The gateway or proxy server lost connection to the We
b server.
<LI id=L_64_14>Date: 6/3/2014 7:48:05 AM [GMT]
<LI id=L_64_15>Server: XXXXX
<LI id=L_64_16>Source: Remote server
觉得是代理问题, 于是自己写了一小段,只是为了确定代理是不是对所有的网站都不能正确connect
于是有了这段:
------------------------------------------
import re
import urllib2
from bs4 import BeautifulSoup

url = "http://www.douban.com/people/P05004260/"
#url = "http://www.qiushibaike.com/week/page/1"
contents = urllib2.urlopen(url).read()
pattern = re.compile(r'P05004260')
soup = BeautifulSoup(contents)
link_list = []
targethref_list = []

for link in soup.find_all('a'):
        try:
                link_list.append(link.get('href'))        
        except UnicodeEncodeError:
                print '==============^^ UnicodeEncodeError ^^==============='

for number in link_list:
        #print "href is: %s" % number
        #print re.search('P05004260',number)
        m = pattern.search(number)#search is search every words, match is search first words
        if m:
                print "P05004260 found: ", m
                print "href is: ", number
                targethref_list.append(number)
        #else:
                #print "No match"
------------------------------------
当我的url是豆瓣那个(http://www.douban.com/people/P05004260/)时,就没有问题,
当url是楼主糗百的那个(http://www.qiushibaike.com/week/page/1)时,就仍然爆
urllib2.HTTPError: HTTP Error 502: Proxy Error ( The specified network name is n
o longer available.  )
所以我现在不知道是代理还是地址问题了QAQ 浏览器明明可以打开楼主给的地址的
准备晚上回家在家里没有代理的环境下试一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-6-16 17:29 , Processed in 0.024253 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部