设为首页 加入收藏

TOP

【学习笔记】PYTHON网络爬虫与信息提取(北理工 嵩天)(一)
2019-09-06 00:28:43 】 浏览:133
Tags:学习 笔记 PYTHON 网络 爬虫 信息 提取 理工 嵩天

学习目的:
掌握定向网络数据爬取和网页解析的基本能力
the Website is the API…

1 python ide

文本ide:IDLE,Sublime    Text
集成ide:Pycharm,Anaconda&Spyder,Wing,Visual Studio & PTVS,Eclipse & PyDev,Canopy

默认源太慢:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) https://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/

2 网络爬虫规则

2.1 Requests库 自动爬取html页面

#安装方法 管理员权限启动cmd安装
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

#测试下image

#requests库7个主要方法:
a、requests.request() 构造一个请求,支撑以下各方法的基础方法
b、requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
c、requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
d、requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
e、requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
f、requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
g、requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE

r = requests.get(url)    
        r是返回一个包含服务器资源的Response对象,右边是构造一个向服务器请求资源的Request对象
requests.get(url,params=None,**kwargs)  完整格式
    params:url中的额外参数,字典或者字节流格式可选
    **kwargs:12个控制访问参数可选
打开源码可知,get方法是调用requests方法封装的,实际上7个方法中,其余6个都是由request方法封装
Response对象常用5个属性
    r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败
    r.text HTTP响应内容的字符串形式,即,url对应的页面内容
    r.encoding 从HTTP header中猜测的响应内容编码方式,如果header中不存在charset,则认为编码为ISO-8859-1
    r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
    r.content HTTP响应内容的二进制形式
requests库异常
  requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
    requests.HTTPError HTTP错误异常
    requests.URLRequired URL缺失异常
    requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
    requests.ConnectTimeout 连接远程服务器超时异常
    requests.Timeout 请求URL超时,产生超时异常
爬取网页的通用代码框架
import requests
def getHTMLText(url):
    try:
        r = requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return “产生异常”
if __name__ == “__main__”:
    url = “http://www.baidu.com”
    print(getHTMLText(url))

http协议对资源的6中操作:  
GET 请求获取URL位置的资源
HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST 请求向URL位置的资源后附加新的数据
PUT 请求向URL位置存储一个资源,覆盖原URL位置的资源
PATCH 请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE 请求删除URL位置存储的资源 

通过URL和命令管理资源,操作独立无状态,网络通道及服务器成为了黑盒子

理解PATCH和PUT的区别:
假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段
需求:用户修改了UserName,其他不变
. 采用PATCH,仅向URL提交UserName的局部更新请求
. 采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除
PATCH的最主要好处:节省网络带宽

http协议与requests库功能是一致的

requests.request()
requests.request(method, url, **kwargs)
method : 请求方式,对应get/put/post等7种
? url : 拟获取页面的url链接
? **kwargs: 控制访问的参数,共13个

method : 请求方式
r = requests.request(‘GET’, url, **kwargs)
r = requests.request(‘HEAD’, url, **kwargs)
r = requests.request(‘POST’, url, **kwargs)
r = requests.request(

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python面试题之这两个参数是什么.. 下一篇Python 之初识函数 (day08 课堂..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目