python爬虫-基础用法总结

     近期在学习爬虫,前面自己在网上找博客看,也自己写了一些简单的代码,感觉知识不够系统。故从网上找了视频来学习,下面是对一些基础知识的总结。

一.urllib库使用(还是requests库方便,所以不列举用法了)

二.requests库使用(比urllib库更方便)

1.请求

(1)get与post请求

这是添加data和headers的post请求,get请求只能传url和headers两个参数

(2)响应

a.打印相关信息,譬如头部、状态码、cookie、url等(打印cookie很方便,不用像urllib里面还用cookiejar)

也可以这么打印cookie

扫描二维码关注公众号,回复: 4245975 查看本文章

b.解析json

如果你的返回结果是一个json字符串,以上两种方法会将其转换为json对象,两种会可以得到相同结果

c.解析二进制数据

用response.content即可获取二进制数据,保存图片、视频等

(3)高级操作

a.维持会话(一般用于模拟登录)

用session()方法,上面的url相当于set方法来设置cookie,而下面用来get cookie

(在项目中的用法暂时不太清楚)

b.证书验证

c.代理设置(就不用像urllib中使用handler了)

d.异常处理

也可以只捕获第一个子类error

三、bs4

1.直接选择标签

(1)获取整个标签

注意:这种选择方式只返回第一个结果

(2)获取属性

上面两种方式都可以

(3).string获取标签内文字内容

还可以嵌套选择

2.获取树节点

(1)子节点:soup.p(某标签,此处按p举例).contents/children均可,后者输出是个列表,需要用迭代器循环,如下图所示

上面的输出了索引和列表内容,也可以用print(list(enumerate(soup.p.children)))输出

(2)子孙节点:soup.p.descendants,也需要用迭代器

(3)父节点:soup.p.parent(最近的父节点,不是列表)

(4)祖先节点:soup.p.parents(列表,会是各层嵌套的父节点)

(5)兄弟节点:soup.p.previous_siblings/next_siblings(也是列表)

3.标准选择器

这两个函数可以层层迭代,不断缩小范围

(1)根据标签选择

(2)根据属性来查找

两者均可返回列表,右边是更简化的写法

4.css选择器(select方法,相当于find_all)

(1)获取标签

(2)选择属性

第二个可以获取标签内的文本

四、selenium库

1.获取元素

左边是所有的查找方法,后边是示例

获取属性方法  标签.get_attribute('属性'),获取文本值标签.text,获取其他信息标签.id/location/size等

2.元素交互操作(先获取元素再进行一些动作)

find_element_by_id()是找到搜索框,send_keys是模拟键盘内的输入(‘Python’+回车),wait until是等相应元素加载出来

3.交互动作(不同于元素交互,把动作附加到串行链中串行进行)

必须导入actionchain包,首先switch函数找到iframe标签(!!在子frame里不能查找到父frame里的标签),通过id分别选择出需要拖拽的两个元素,再调用actionchain里的方法进行拖拽和perform,就可以在网页上显示出效果

其他的一些动作查看api:http://selenium-python.readthedocs.io/api.html

未提供API的一些动作,比如下拉动作,可以传入js代码来实现

4.等待

5.其他功能

猜你喜欢

转载自blog.csdn.net/zhiman_zhong/article/details/81214137
今日推荐