您的位置:首页 > 编程语言 > Python开发

python实战笔记第二弹—模拟浏览器执行过程

2018-01-09 17:48 337 查看
“高强度的实战训练,是每个高手成长的必经之路”—某个剑客的海贼曾说

    通过观察我们发现,我们在点击海贼网http://op.hanhande.com/shtml/op_wz/list_2602_7.shtml的分页链接都是有迹可循的,这就给我们的抓取工作,带来了极大的便利。那么问题来了,如果一个网站的分页后产生的内容均是动态加载的,那我们应如何处理呢?

下面先由我介绍两款“神器”—phantomjs+selenium。

“聪明的探险家总是能得到他们所需要的东西”—大探险家伊泽

当我们接触一个新库,当然没必要完全了解其全部的功能。作为立志成为伟大探险家的男人,熟练地使用搜索引擎和官网API才是我们当下应该做的。

selenium如何做Web浏览器的自动化测试?
我们查阅selenium的官方API简单了解其作用
seleniumhttps://seleniumhq.github.io/selenium/docs/api/py/api.html

“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才可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: