请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
123
返回列表 发新帖
楼主: byron

一个用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的地址,改地址在浏览器可以打开
想问一下是否是我本地上网用的是代理的原因?如果是怎么解决?
如果不是这个原因应该怎么办?

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2014-6-3 15:10:40 |显示全部楼层
Heinrich 发表于 2014-6-3 14:17
楼主点赞 下载下来学习
我在运行时爆了一个HTTPError,详细信息如下:
----------------------------------- ...

确实似乎是代理的问题。可以把代理关掉吗
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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 浏览器明明可以打开楼主给的地址的
准备晚上回家在家里没有代理的环境下试一下
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

发表于 2016-4-26 21:28:26 来自手机 |显示全部楼层
楼主厉害
回复

使用道具 举报

0

主题

1

好友

38

积分

新手上路

Rank: 1

发表于 2016-5-9 10:27:14 |显示全部楼层
不错啊,学习一下;顺便提几点建议:
1.s = raw_input("回车继续"),我觉得其实你输入任何非q字符都可以继续,所以最好判断一下输入的是否为回车;
2.尽量不要使用if_qb这种不是很明确用来做什么用途的名字,不然读起来比较费劲;
3.global p,全局变量能不用就不要用吧,最好将p作为参数代入for_qb()中,或者干脆不要for_qb()这个function,因为全局变量确实不好找……
回复

使用道具 举报

0

主题

1

好友

61

积分

注册会员

Rank: 2

发表于 2017-4-24 10:31:02 |显示全部楼层
crossin先生 发表于 2013-9-13 02:00
这是在催稿的节奏啊

crossin先生,请问你的教程在 哪里啊,抓取网页的爬虫的,请告知,谢谢
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2017-4-25 00:00:13 |显示全部楼层
xqqxjnt1988 发表于 2017-4-24 10:31
crossin先生,请问你的教程在 哪里啊,抓取网页的爬虫的,请告知,谢谢

http://crossincode.com/course/lesson_list/
先看看里面查天气相关的几课。
论坛上也有对应的帖子,而且里面记录了不少问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

61

积分

注册会员

Rank: 2

发表于 2017-4-25 16:18:05 |显示全部楼层
crossin先生 发表于 2017-4-25 00:00
http://crossincode.com/course/lesson_list/
先看看里面查天气相关的几课。
论坛上也有对应的帖子,而 ...

好的,谢谢,正在看助教老师发的教程,一篇一篇的在看
回复

使用道具 举报

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

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

GMT+8, 2024-4-16 23:45 , Processed in 0.028327 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部