Python与网页处理
Python 语言发展中有一个里程碑式的应用事件,即美国谷歌(GOOGLE)公司在搜索引擎后端采用Python 语言进行链接处理和开发,这是该语言发展成熟的重要标志。Python 语言的简洁性和脚本特点非常适合链接和网页处理。万维网(WWW)的快速发展带来了大量获取和提交网络信息的需求,这产生了“网络爬虫”等一系列应用。
Python 语言提供了很多类似的函数库,包括urllib、urllib2、urllib3、wget、scrapy、requests 等。对于爬取回来的网页内容,可以通过re(正则表达式)、beautifulsoup4等函数库来处理。网络爬虫一般分为两个步骤:(1)通过网络连接获取网页内容(2)对获得的网页内容进行处理。分别使用两个不同的函数库:requests 和beautifulsoup4,它们都是第三方库。
安装第三方库
安装requests库命令: pip install requests 或者 pip3 install requests
安装beautifulsoup4库: pip install beautifulsoup4 或者 pip3 install beautifulsoup4
网页爬虫
python语言实现网页爬虫和提交信息很简单,代码量少,且无需知道网络通信方面知识,非专业者也可以容易上手。但是,肆意的爬取网页容易触碰法律的底线,所以在爬取一个网站前最好先康康这个网页的Robots排除协议(爬虫协议),它是网站管理者表达是否希望爬虫自动获取网络信息意愿的方法,一般在网页后加上 /robots.txt 即可康到。
Robots 排除协议重点约定不希望爬虫获取的内容,如果没有该文件则表示网站内容可以被爬虫获得,然而,Robots 协议不是命令和强制手段,只是国际互联网的一种通用道德规范。绝大部分成熟的搜索引擎爬虫都会遵循这个协议,建议个人也能按照互联网规范要求合理使用爬虫技术

requests库的使用
requests 库是一个简洁且简单的处理HTTP请求的第三方库,最大的优点是程序编写过程更接近正常URL 访问过程,这个库建立在Python 语言的urllib3 库基础上。
request 库支持非常丰富的链接访问功能,包括:国际域名和URL 获取、HTTP 长连接和连接缓存、HTTP 会话和Cookie 保持、浏览器使用风格的SSL 验证、基本的摘要认证、有效的键值对Cookie 记录、自动解压缩、自动内容解码、文件分块上传、HTTP(S)代理功能、连接超时处理、流数据下载等。详见 http://docs.python‐requests.org。

get() 函数是获取网页最常用的方式,在调用 requests.get() 函数后,返回的网页内容会保存为一个Response 对象,其中,get() 函数的参数url 必须链接采用 HTTP 或 HTTPS 方式访问
import requests
# get方式打开B站
request = requests.get("http://www.bilibili.com")
print(type(request)) # <class 'requests.models.Response'>
和浏览器的交互过程一样,requests.get() 代表请求过程,它返回的 response 对象代表响应。返回内容作为一个对象更便于操作,Response 对象的属性如下表所示,需要采用<a>.<b>

status_code 属性返回请求HTTP 后的状态,在处理数据之前要先判断状态情况,如果请求未被响应,需要终止内容处理。
text 属性是请求的页面内容,以字符串形式展示。
encoding 属性非常重要,它给出了返回页面内容的编码方式,可以通过对encoding 属性赋值更改编码方式,以便于处理中文字符