爬取小说文件(第三天)
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))
kingrain送给读者的话:Everthing isn't getting along well,your efforts paid off!