本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法。html
能够经过3种方式安装:java
这里只介绍pip安装方式:python
输出:linux
下面将上面获取到的网页html内容写入到文件中,这里有一点须要注意的是:python是调用ASCII编码解码程序去处理字符流的,当字符不属于ASCII范围时会抛异常(ordinal not in range(128)),因此要提早设置程序的默认编码:windows
而后再将响应的html内容存入文件中:浏览器
1. 自定义测试html服务器
2. 从html文本中获取soup网络
3. soup.select()函数用法架构
(1) 获取指定标签的内容app
(2) 获取指定id的标签的内容(用'#')
(3) 获取指定class的标签的内容(用'.')
(4) 获取a标签的连接(href属性值)
(5) 获取一个标签下的全部子标签的text
(6) 获取不存在的标签
(7) 获取自定义属性值
4. soup.find()和soup.find_all()函数用法
(1) find()和find_all()函数原型:
find和find_all函数均可根据多个条件从html文本中查找标签对象,只不过find的返回对象类型为bs4.element.Tag,为查找到的第一个知足条件的Tag;而find_all的返回对象为bs4.element.ResultSet(实际上就是Tag列表),这里主要介绍find函数,find_all函数相似。
(2) find函数的用法示例
1. 代理访问
有时候为了不封IP,或者在某些公司内网访问外网时候,须要用到代理服务器发送请求,代理的用法示例:
2. 向https的url发送请求
有时候向https的url发送请求会报错:ImportError:no module named certifi.
解决方法:在发送请求时关闭校验:verify = False,如:
3. httpbin.org
httpbin.org是requests库的做者开发的一个网站,能够专门用来测试requests库的各类功能,其页面以下:
但httpbin.org的服务器在国外,访问速度比较慢。因此须要在本地搭建一个该网站的镜像,方法以下:
前提:安装好requests库,才能基于该网站测试requests库的功能。
浏览器输入:127.0.0.1:8000,便可访问。
注:以上步骤在windows下会报错:缺乏模块pwd.fcanl,在linux下没问题。
4. requests库官方文档
http://docs.python-requests.org/en/master/
原文连接:
https://www.cnblogs.com/jiayongji/p/7118939.html
-END-