标签:简单的 title 爬虫 最大 编码格式 pre 设置 class 保存
因为各种原因,需要建立一个法律大全的库,方便做匹配等。重新拿起了python,发现忘的差不多了。
网上找了一下,这是一个大佬做的一个最简单的爬虫,http://www.cnblogs.com/fnng/p/3576154.html,爬取图片的。
于是,学习了之后,自己做了一个爬虫,由于这个是基于2.7版本的,只用了urllib的库,中文的问题啊,真是烦人。所幸经过两天大量的百度,解决了这些乱七八糟的问题。走过的弯路如下,警醒自己。
一.字符串常用操作.
#list转换成字符串 list = "".join(list) #字符串去除左边空格 str = str.lstrip() #同理,右边空格rstrip,空格strip #去除对应字符 str = str.slip("不要我了")
二.中文问题与编码格式问题
由来已久,python2.7最大的问题。
1.string的问题
string在python2.7中默认为ascii的格式,可以通过导入sys来转换成utf-8
#在前面插入这三行代码 import sys reload(sys) sys.setdefaultencoding(‘utf8‘)
2.在链接或者其他匹配的东西中,请在前面加上u,或者在后面加上.encode("xxx").统一转换成unicode格式,进行操作,不然会出现很多奇奇怪怪的错误
#字符串转换成unicode str = u"我要被转换了"
#变量被转换
str = str.decode("utf-8")#这里可能会是其他的编码格式,不一定是utf-8,看情况
3.中文文件路径
尽量避免使用中文路径,如果一定要用,只能将路径中的内容全部转换成unicode格式的。
#例如这是我的程序中一段代码,_save是要保存文件的本地路径 _save = mulu + r"/" + title + u"(" + time + u").txt"
三.网站网速慢怎么办。
运气不好,爬的网站速度慢成狗,同学爬几十万条的数据都爬完了,我的还是龟速前进。每个页面都要尝试访问好几次才能进。
设置超时时间和重新连接。
#设置重连次数计数器 fails = 0 #urllib不能再openurl方法里设置超时时间,只能设置全局的。 #这里设置为5秒 socket.setdefaulttimeout(5) while True: try: if fails >= 20: break #这里是访问的方法 except: fails += 1 print "超时了,重新接入" else: break
标签:简单的 title 爬虫 最大 编码格式 pre 设置 class 保存
原文地址:http://www.cnblogs.com/wuleh/p/7647627.html