①数据获取 ②数据清洗 ③数据分析 ④数据保存(④数据可视化)
URL(Uniform Resource Locator,统一资源定位符)
我们通常说的是“网址”,实际是资源唯一确定的标签。
三大部分:
第一部分:protocl
耳熟能详的:http 、 https
第二部分:hostname[:port]
用于存放各种资源文件的服务器或者是IP。
端口号可是默认,如http协议默认为80.
第三部分:path
文件的具体位置。
如:
https://++++www.csdn.net+++++ /nav/python
from urllib import request
# 或者import urllib.request
导入模块
①首先实例一个Request类对象
url = request.Request("http://www.zongheng.com/", data=None, headers=None)
第一个参数是url 要访问的资源地址。
data 是传递给服务器的数据(表单等)。
比如翻译单词:将 "python"这个单词作为数据data发送(POST)给服务器。
headers 传递给服务器的报头(访问者的个人信息),
用修改headers来使爬虫伪装成浏览器。
其他Request()方法
.add_headers 添加报文头
.add_data 添加数据
...
②用urlopen获取数据
respond = request.urlopen(url, data=None, timeout=None)
respond = respond.read().decode("utf-8")
data 与Request 的 data意义相同。
timeout 可设置访问超时退出,时间单位是/s。
urlopen()中的其它方法
.read(x) 以字节字符串的形式读取x btyes(kb的上一个单位b)个数据
.readline() 以 字符串 形式读取 单行**文本** 与处理txt文件相似
.readlines()
.info 返回服务器返回的报头信息
.geturl 取得实际URL
.getcode 返回服务器状态,200是正常访问,404网页丢失
...
③别忘解码
respond类对象是二进制对象,需要解码才能进行文本操作。
.encode() 编码
.decode() 解码
常见的有gbk、utf-8 ,excel表格常用gb18030
点此了解更多关于编码和解码的内容
homepage = respond.decode("utf-8")
print(homepage)
全部完整代码
from urllib import request
# 或者 import urllib.request
url = request.Request("http://www.zongheng.com/")
# 这里的Request类实例中 data=None, timeout=None 参数要去掉
respond = request.urlopen(url, data=None, timeout=None)
homepage = respond.read().decode("utf-8")
print(homepage)
urlopen()函数不支持如使用代理、验证(账号密码验证)、更改cookie等高级HTTP功能。若要实现该功能就需要用request模块中的 build_opener()方法创建自己的自定义opener对象。
session:“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。
cookie:是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据,由用户客户端计算机保存的信息。
①使用opener的步骤
1、建立具有特殊处理程序实例对象
proxy_support = request.ProxyHandler({"http":"服务器地址或IP:端口号"})
...
2、创建opener实例对象,传入实例
opener = request.build_opener(prxy_support)
3、安装or单次调用
1、
request.install_opener(opener)# 安装,会覆盖原先的
...urlopen(url...)# 接着使用urllopen
2、
opener.open(url) # 单次使用opener
②其它特殊处理程序
1、密码验证
验证码问题不知道怎么解决,学习中,目测需要手写字体识别(深度学习)
因为内容比较多,单独列———
【Python web_crawler】爬虫密码管理
parse模块用来解析和编码url
当向服务器发送请求时的url是需要编码的。
1、urlencode()用来编码中文等特殊字符