python爬虫-入门(一)

爬虫定义

爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

reuqests安装

requests库是python的第三方库,是一个比较简单好用的爬虫库

打开命令行直接使用pip安装requests第三方库

pip install requests

requests方法

HTTP协议对资源的操作

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

方法里的参数

**kwargs:控制访问的参数,均为可选项

参数 说明
params 字典或字节序列,作为参数增加到url中
data 字典、字节序列或文件对象,作为Request的内容
json JSON格式的数据,作为Request的内容
headers 字典, HTTP定制头
cookies 字典或cookieJar , Request中的cookie
auth 元组,支持HTTP认证功能
files 字典类型,传输文件
timeout 设定超时时间,秒为单位
proxies 字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects True/False ,默认为True ,重定向开关
stream True/False ,默认为True ,获取内容立即下载开关
verify True/False ,默认为True ,认证SSL证书开关
cert 本地SSL证书路径

requests.request( )

构造一个请求,支撑以下各方法的基础方法
格式:requests.request(method, url,**kwargs)
method:请求方式
url:获取页面url链接
**kwargs:13个控制访问的参数

在这里插入图片描述

requests.get( )

获取HTML网页的主要方法,对应于HTTP的GET
格式:requests.get(url, parems=none, **kwargs)
括号里除了url,其余看情况选择合适的参数
parems:字典或字节序列,作为参数增加到url中,可选项

在这里插入图片描述

requests.head( )

获取HTML网页头信息的方法,对应于HTTP的HEAD
格式:requests.head(url, **kwargs)

在这里插入图片描述
requests.post( )

向HTML网页提交POST请求的方法,对应于HTTP的POST
格式:requests.post(url, data=none, json=none, **kwargs)
data:字典、字节序列或文件,Request的内容
json:JSON格式的数据,Request的内容

在这里插入图片描述
requests.put( )

向HTML网页提交PUT请求的方法,对应于HTTP的PUT
格式:requests.put(url, data=none, **kwargs)
put必须将URL位置的全部字段提交,未提交字段被删除

requests.patch( )

向HTML网页提交局部修改请求,对应于HTTP的PATCH
格式:requests.patch(url, data=none, **kwargs)
patch仅向URL位置提交部分字段的更新请求,相比put请求节省网络带宽

requests.delete( )

向HTML页面提交删除请求,对应于HTTP的DELETE
格式:requests.delete(url, **kwargs)

requests对象

属性 说明
r.status_code HTTP请求的返回状态, 200表示连接成功, 404表示失败
r.text HTTP响应内容的字符串形式,即url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式
r.headers 返回字典形式的响应头
r.cookies 返回响应的cookie

在这里插入图片描述

requests异常

异常 说明
requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常

r.raise_ for_status( )方法可以判断返回的状态码是否为200,如果不是200返回异常。使用时不用if判断r.status_code返回的状态码,直接使用try- except语句进行异常处理。

爬取网页通用框架

import requests


def getHTMLText(url):
    try:
        r = requests.get(url, timeout=10) # 设定请求时间,超时异常
        r.raise_for_status()              # 如果状态不是200,引发HTTPError异常
        r.encoding = r.apparent_encoding  # 将根据网页内容分析出的编码方式当作输出时的编码
        return r.text
    except:
        return "产生异常"


if __name__ == "__main__":
    url = "https://www.baidu.com"
    print(getHTMLText(url))

以上均为个人学习笔记,如有错误请指正,共同学习,谢谢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章