2 a447685024 a447685024 于 2016.04.29 10:56 提问

python 爬虫 出现IOError错误

-*- coding:utf-8 -*-

#! /usr/bin/env python
import urllib
import urllib2
import re

page = 1
url = 'http://www.qiushibaike.com/hot/page/' + str(page)
user_agent = 'Mozilla/4.0(compatible;MSIE 5.5;Windows NT)'
headers = {'User-Agent':user_agent}

try:
request = urllib2.Request(url,headers = headers)
response = urllib2.urlopen(request)
content = response.read().decode('utf-8','ignore')
pattern = re.compile(r'

?<img.?>.*?.*?.*?(.*?)', re.S)
items = re.findall(pattern,content)
for item in items:
print item[0],item[1]

except urllib2.URLError, e:
if hasattr(e,"code"):
print e.code
if hasattr(e,"reason"):
print e.reason


```这是出现错误的信息,在powershell中设置chcp 65001就会出现IOError错误,设置成chcp 437或者936就会出现下面的乱码,请问是什么原因?


1个回答

liuyuan_jq
liuyuan_jq   2016.05.07 14:04
  1. 首先将文件设置为utfu0
  2. print是否打印出信息取决于终端编码,可以将print需要打印的信息先转换为unicode编码,然后再转换为终端对应的编码
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
[python爬虫]使用urllib函数urlretrieve报错[socket error][Errno 10054]
为了练手,使用爬虫爬一个“你懂得”图床的,使用的是urlretrieve函数,不但速度慢,还总是会报错,不是open的timeout就是上面提到的socket error。在网上找了许多办法诸如在urllib2.Request.urlopen().read()后需要调用close()关闭等方法并未奏效。 由于不想麻烦scrapy等库,所以发现了个简单粗暴的办法: 直接使用urllib自带的ope
Python IOError错误
IOError: [Errno 2] No such file or directory: 'XXXXX.txt' 当你不能满足被访问文件所设置的权限时,也会引发IO Error错误,类似这样IOError: [Errno 13] Permission denied: 'c:/a.txt'     python permission denied 从字面意思来理解就可以知道原因了,是因为
爬虫时碰到的socket.error: [Errno 10060]错误的原因以及解决方法
socket.error: [Errno 10060]原因是爬取页面过快造成暂时被网站ban掉的情况,设置time.sleep(1)就好,后来发现ban的时间不定,就自己动手写了个暴力的做法def avoid_10060(fun): error_time = 0 while True: time.sleep(1) try: re
Python24中使用urllib时遇到IOError的正确打开方式
WIP
Python IOError错误常见原因有哪些?
Python IOErro错误主要是指要打开的文件不存在的错误提示,引起IOError错误的可能原因有很多,以下是最可能的原因!1. 文件确实不存在当错误的输入了一个不存在的文件名,并试图打开它的时候,程序会因为找不到这个文件名而引发IOError错误,这种情况就需要将输入的文件名修改成正确的文件名!2. 文件写入时遇到IOError错误该错误引起的原因极有可能是以读取方式打开了文件,并在读取模式...
windows下运行python爬虫脚本乱码问题,IOError: [Errno 22] Invalid argument
我们在编写python简单爬虫案例的时候,在windows下的cmd命令行运行该爬虫脚本的时候会出现一些莫名的乱码: 这是因为windows下的cmd没有支持中文显示,所以需要在执行命令更改编码显示:chcp 65001然而我们在更改之后依然会发现会报下面的错误: 根据错误描述:IOError属于io异常,并且写明出错的代码在第6行,回去看我们的代码,在脚本执行到底6行的时候,发现了中文字符
python中用open打开文件,报错 IOError:[Error 22] invalid mode ('rb') or filename
原始文件路径为:  E:\postgraduate\DeepLearning-master\cs231n\HomeWorks\assignment1\cs231n\datasets\cifar-10-batches-py 我使用open函数打开此文件时,得到报错信息: IOError:[Erron 22] invalid mode ('rb') or filename 在几次尝试对代码进行改正
Python 文件操作 IOError Errno 0
问题描述           在一个函数中以a+方式打开文件,然后读取文件内容,读取的内容修改然后重新写入文件。   在重现写入的过程中出现了 IOError Errno 0 错误。 原因 google出来的原因是栈溢出 stack overflow.  解决方法  在读取文件之后将文件关闭,再次需要写入文件时再将文件以w+方式打开。
python error: [Errno 10054]
data = self._sock.recv(self._rbufsize) error: [Errno 10054]编写爬虫时,运行代码出现了如下的错误, 对一个网站使用大量的urlopen()操作,会被那个网站认为攻击行为,网站会把你封了,就有不允许下载的情况,导致urlopen()后,request.read()一直卡死在那,不能继续下去,最后会抛出这个异常。即使添加了useragent,
python 在windows下创建文件IOError的一个原因
今天在测试python程序时,按照书本上的例子来测试。在win7下始终会报一个IOError的异常,所用的开发工具为eclipse+pydev。 例子如下: ''' Created on 2013-3-31 @author: kazeik ''' import os if __name__ == '__main__': pass ls = os.linesep prin