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做后续处理