1.当我把数据存储到mysql的时候,出现了TypeError:execute() takes at most 3 arguments (7 given)
a.这不是一个错误。当你要求它将非数字转换为整数时,这是来自CONVERT()的警告;
b.爬取的数据str、unicode、xml等类型不清楚
c.sql语句的参数没有写全
2.str和unicode类型互转
a.如果print显示是这种\uXXXX的escape序列,那么它应该已经是unicode string了,不需要转换。
如果字符串本身包含这些字符,转换方法如下:
1 a='\u559c\u6b22\u4e00\u4e2a\u4eba' 2 print a.decode('raw_unicode_escape')
b.通用转换方法:
python 2.x str 转 unicode:
str_string.decode('original_encoding')
unicode 转 str:
unicode_string.encode('target_encoding')
所有支持的编码格式可以在python网站查到。
3.python各种删除空格方法汇总
1 " xyz ".strip() # return "xyz" 2 " xyz ".lstrip() # return "xyz " 3 " xyz ".rstrip() # return " xyz" 4 " x y z ".replace(' ', '') # return "xyz"
4.mysql语句中----删除表数据drop、truncate和delete的用法
a.程度从强到弱
1、drop table tb
drop将表格直接删除,没有办法找回
2、truncate (table) tb
删除表中的所有数据,不能与where一起使用
3、delete from tb (where)
删除表中的数据(可制定某一行)
b.区别:truncate和delete的区别
1、事务:truncate是不可以rollback的,但是delete是可以rollback的;
原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback
2、效果:truncate删除后将重新水平线和索引(id从零开始) ,delete不会删除索引
3、 truncate 不能触发任何Delete触发器。
4、delete 删除可以返回行数
5.Logging(https://www.cnblogs.com/shouzhong/p/7685822.html)
Scrapy提供了log功能,可以通过 logging 模块使用
可以修改配置文件settings.py,任意位置添加下面两行
LOG_FILE = "mySpider.log"
LOG_LEVEL = "INFO"
Scrapy提供5层logging级别:
- CRITICAL - 严重错误(critical)
- ERROR - 一般错误(regular errors)
- WARNING - 警告信息(warning messages)
- INFO - 一般信息(informational messages)
- DEBUG - 调试信息(debugging messages)
logging设置
通过在setting.py中进行以下设置可以被用来配置logging:
LOG_ENABLED
默认: True,启用loggingLOG_ENCODING
默认: 'utf-8',logging使用的编码LOG_FILE
默认: None,在当前目录里创建logging输出文件的文件名LOG_LEVEL
默认: 'DEBUG',log的最低级别LOG_STDOUT
默认: False 如果为 True,进程所有的标准输出(及错误)将会被重定向到log中。例如,执行 print "hello" ,其将会在Scrapy log中显示
6.scrapy保存为excel