Crawler小爬虫,总结
python数据类型
- 字符串,单引号双引号-普通字符串,三引号-跨行长字符串
str = 'this is string'
str = "this is also a string"
str = '''
this is a long string
which inclode many sustring
and multiple lines
'''
- 列表,用中括号
[]
表示,可以加入各种数据类型的数据
list = [1, 2 ,3, 4 ,5]
multipleTypeList = ['123', 123, otherType]
- 元组,定义好的元组中的不能够修改,但是可以用
del
删除,+
连接,*
复制元组,使用()
表示
tuple = (1, 2, 3, 4, 5)
multipleTypeTuple = (1, 2, '123', otherType)
- 字典,无序的对象集合,相当于其它语言中的map,关联数组或哈希表,又键和对应的值组成,通过键来取值,而且键必须是独一无二的
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
multipleDic = {'1' : 1, '2' : '123'}
dict.clear()
dic.get(key, default=None)
dict.has_key(key)
dict.items()
dict.keys()
dict.update(dict2)
dict.values()
set = set()
set.add(data)
set.pop()
import Queue
myqueue = Queue.Queue(maxsize = 10)
myqueue.put(10)
myqueue.get()
class Queue.Queue(maxsize) FIFO
#LIFO类似于堆。即先进后出。
class Queue.LifoQueue(maxsize) LIFO
#还有一种是优先级队列级别越低越先出来。
class Queue.PriorityQueue(maxsize) 优先级队列
- 去掉所有的特殊字符串,使用正则表达式
re.sub[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()], 'replaceString', 'contentString'
import re
temp = "想做/ 兼_职/学生_/ 的 、加,我Q: 1 5. 8 0. !!?? 8 6 。0. 2。 3 有,惊,喜,哦"
temp = temp.decode("utf8")
string = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()]+".decode("utf8"), "".decode("utf8"),temp)
print string
type
if type is None :
pass
string = ''
if string == '':
pass
try:
pass
except Exception,e:
e.args
e.message
str(e)
- 编码问题
- 对ascii和utf-8的编码装换,因为大多数都是使用utf-8字符,但是因为python默认编写时候就是用ascii来编写的,所以会出现乱码的问题
- 写有中文字符的文件的时候,可以使用
codecs
指定编码写入
- 在写入
csv
文件的时候需要指定csv文件为utf-8
string = u'中国人'
string.encode('utf-8')
string.decode('utf-8')
writeFile = codecs.open(fileName, 'w', "utf-8")
writeFile.write(content)
writeFile.close()
f = open(fileName, 'w')
f.write(codecs.BOM_UTF8)
f.writerow(content)
f.writerows(content)
f.close()