爬取小说文件(第三天)

1、问题:当爬取的网页不存在时报错

解决方法:使用try......except......抓住异常并继续运行下一页的爬取

try:
......
except IndexError as e:
        print e
        url(n-1)

 抓住异常并打印出异常,然后再执行url()函数。可以顺利的跳过不存在的网页。

2、问题:抓取网页时出现链接超时的现象

解决方法:使用try......except......抓住异常并使它 sleep()一下 继续运行下一页的爬取

try:
......
except requests.ConnectionError as e:
        print e
        sleep(15)
        url(n)    

 3、问题:下载的小说不能解压

解决方法:下载的时候将rar格式用作了zip格式的,在解压的时候总是报错,浪费了很多的时间

①错误的命名

open_url = urllib2.urlopen(xiaoshuo_down_urls)
data = open_url.read()
with open(name+".zip","wb") as code:
    code.write(data)
    time.sleep(3)

 ②正确的命名

open_url = urllib2.urlopen(xiaoshuo_down_urls)
data = open_url.read()
with open(name+".rar","wb") as code:
    code.write(data)
    time.sleep(3)

 在使用python解压下载下来的文件的时候使用的代码是:

import zipfile

z = zipfile.ZipFile("F:\\example\\daoyin.zip",'r') z.extractall("F:\\example\\ExtractTest") for f in z.namelist(): output = open("F:\\example\\"+f,'wb') output.write(z.read(f)) output.close()

通过以上代码总是显示:zipfile.BadZipfile: File is not a zip file

下载文件是一定要注意不要改变文件的后缀名

4、如何识别一个文件是zip文件还是rar文件

f = open('demo.zip','rb')
print repr(f.read(50))

 

posted @ 2016-01-22 07:24  kingrain  阅读(151)  评论(0)    收藏  举报