“高强度的实战训练,是每个高手成长的必经之路”—某个剑客的海贼曾说
通过观察我们发现,我们在点击海贼网
http://op.hanhande.com/shtml/op_wz/list_2602_7.shtml的分页链接都是有迹可循的,这就给我们的抓取工作,带来了极大的便利。那么问题来了,如果一个网站的分页后产生的内容均是动态加载的,那我们应如何处理呢?
下面先由我介绍两款“神器”—phantomjs+selenium。
“聪明的探险家总是能得到他们所需要的东西”—大探险家伊泽
当我们接触一个新库,当然没必要完全了解其全部的功能。作为立志成为伟大探险家的男人,熟练地使用搜索引擎和官网API才是我们当下应该做的。
selenium如何做Web浏览器的自动化测试?
我们查阅selenium的官方API简单了解其作用
“Lambda 表达式”(lambda expression)是一个
匿名函数,Lambda表达式基于数学中的
λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示
闭包。与其它语言不同,Python的Lambda表达式的函数体只能有唯一的一条语句。
下面是个Lambda表达式的例子:
1
2
3
4
|
#!/usr/bin/envpython
li
=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]
li
=sorted(li,key
=
lambda x:x["age"])
print(li)
|
如果不用Lambda表达式,而要写成常规的函数,那么需要这么写:
1
2
3
4
5
6
|
#!/usr/bin/envpython
def comp(x):
return x["age"]
li
=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]
li
=sorted(li,key
=comp)
print(li)
|
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。
语法
它通过{}和:来代替%。
“映射”示例
通过位置
1
2
3
4
5
6
|
In [1]: '{0},{1}'.format('kzc',18)
Out[1]: 'kzc,18'
In [2]: '{},{}'.format('kzc',18)
Out[2]: 'kzc,18'
In [3]: '{1},{0},{1}'.format('kzc',18)
Out[3]: '18,kzc,18'
|
字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。