Python数据抓取学习笔记20151126

1、使用httplib2读取网页出现”zlib.error: Error -3 while decompressing data: incorrect header check”错误怎么解决?
大致意思是zlib错误:当解压数据时发现HTTP头信息不正确,百度了一圈一个参考做法是:找到”..httplib2__init__.py”, line 318, in _decompressContent中改为content = zlib.decompress(content, -zlib.MAX_WBITS),我没有试,既然是文件网页压缩解压失败,那我要求不压缩网页就可了,于是在请求头文件中将”Accept-Encoding”改为空或”gzip”,经实测成功,比对两次网页文件大小发现使用gzip压缩,仅仅节约了数十字节,不值得使用,建议设置为空,减少本地机cpu开销。
2、Python怎么安装第三方模块?
恨透了没有仔细学习Python操作方法,一直傻兮兮地网上寻找第三方模块,其实很简单,只需要安装Python集成的pip工具既可以随时下载更新安装的模块。windows系统的安装方法是:运行-》cmd-》”cd (你的Python安装路径)/Python27/Scripts/”-》命令:”easy_install pip”即可完成pip的安装,如果需要安装第三方模块,只需要使用命令”pip 模块名”即可安装,例如安装BeautifulSoup4则输入命令”pip install BeautifulSoup4″回车即可,安装httplib2输入命令”pip install httplib2″,真的很简单。
3、Python爬虫采集中文信息插入Mysql需要过滤和转义那些特殊符号?

需要转义的字符和转义语句有:
a.英文半角单引号’—–string.replace(“‘”,”\'”)
b.英文半角双引号”—–string.replace(‘”‘,’\”‘)
c.英文半角连续双反斜杠—–string.replace(‘\\’,’\’)
d.英文半角逗号,—–string.replace(‘,’,’,’)
需要过滤的字符和方法:
如果不需要存储生僻字,则需要过滤占用四字节的生僻字,方法如下:
try: #过滤四字节生僻字字符
# python UCS-4 build的处理方式
highpoints = re.compile(u'[U00010000-U0010ffff]’)
except re.error:
# python UCS-2 build的处理方式
highpoints = re.compile(u'[uD800-uDBFF][uDC00-uDFFF]’)
sql = highpoints.sub(u’??’, sql.decode(‘utf-8’))
如果需要存储生僻字,则需要将数据库、数据表、相关字段的字符集设置为兼容性更好的utf-8mb4
4、为什么要用异常处理,怎么用?
如果不用异常处理,你一定会在为数据爬取过程中不断的修改代码,重新运行代码中崩溃,所以一定要用异常处理,Python的异常处理语句是:try:…except:…else:…
例如如果不知道会出现什么错误,则可以使用如下语句收集错误类型,慢慢改进程序:
try:
<语句>
except Exception,e:
<把错误信息写入一个文档分析>
else:
<语句>
5、MYSQL.connector for Python查询怎么返回字段名?
MYSQL.connector for Python是Mysql自家出品的Python Mysql连接工具,使用非常方便稳定,使用以下语句即可返回字段名,返回结果集使用fetchall()方法获取擦查询的结果集为列表,列表内的元素默认为元组,使用以下语句可以转换为字典,字典的键值即为字段名:
import mysql.connector as mysql
config={“host”:”localhost”
“port”:”3306″
“user”:”root”
“password”:”root”
“database”:”test”
}
conn=mysql.connect(config)
cursor=conn.cursor(dictionary=True) #此处参数为重点,切记切记