【更新ing】【Python web_crawler】简单爬虫1获取数据---我的python学习笔记1

萌新学爬虫笔记4步

①数据获取 ②数据清洗 ③数据分析 ④数据保存(④数据可视化)

Python的简单爬虫①数据获取

  • 萌新学爬虫笔记4步
  • python通过url来获取互联网资源
    • 1、 什么是url?
    • 2、url的结构
  • python取得url资源的urllib工具包
    • 一、urllib.request模块
      • 1、请求数据 urlopen方法
      • 2、web_crawler 伪装 ---自定义Opener
    • 二、urllib.parse模块

python通过url来获取互联网资源

1、 什么是url?

URL(Uniform Resource Locator,统一资源定位符)

我们通常说的是“网址”,实际是资源唯一确定的标签。

2、url的结构

三大部分:
第一部分:protocl
耳熟能详的:http 、 https

第二部分:hostname[:port]
用于存放各种资源文件的服务器或者是IP。
端口号可是默认,如http协议默认为80.

第三部分:path
文件的具体位置。

如:
https://++++www.csdn.net+++++ /nav/python

python取得url资源的urllib工具包

一、urllib.request模块

from urllib import request
# 或者import urllib.request
导入模块

1、请求数据 urlopen方法

①首先实例一个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)

2、web_crawler 伪装 —自定义Opener

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】爬虫密码管理

二、urllib.parse模块

parse模块用来解析和编码url
当向服务器发送请求时的url是需要编码的。
1、urlencode()用来编码中文等特殊字符

你可能感兴趣的:(Python自学笔记)