python中的yield将function变成generator(一种iterator),用于多次调用生成一系列值(一次调用生成系列值中的一个)。yield作用类似于return,但只是放弃(yield)执行权,函数内部状态(变量和执行情况)保持不变。
参考:‘yield’ and Generators Explained
注:ruby中的yield类似拉环,拉出函数附带的block来执行。
若在.sh文件里执行python脚本报ImportError错,而在shell里直接执行没问题,要设置在.sh里export PYTHONPATH,如:
1 | export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH |
Unicode
用type()查看变量是’unicode‘还是’str’,unicode(str, 'utf-8')返回str的utf-8表示
注音字母的Unicode有两种等价形式:
- 标着注音的字母(即composed形式): 又分canonical的
NFC和compatable的NFKC - 字母和注音(即decomposed形式): 又分canonical的
NFD和compatable的NFKD
用unicodedata库来normalize
1 | # -*- coding: utf-8 -*- |
scrapy
页面解析用pyquery(内部使用lxml)
解析js:
1
2
3
4
5from selenium webdriver
browser = webdriver.PhantomJS()
browser.get(url)
print browser.page_source
browser.quitdownloader下载url,spider解析Item,pipeline对Item做后续处理