Python网络爬虫学习基础笔记

python requests库爬虫基础

本次学习的python爬虫所使用的是requests
下面就是requests库的7种主要方法

方法名 说明
requests.request() 构造一个请求,支撑以下各方法的基础方法
request.get() 获取HTML网页的主要方法,对应HTTP的GET
requests.head() 获取HTML网页的主要方法,对应HTTP的HEAD
requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE

get()方法简介

部分语法r=requests.get(url)
表示构造一个向服务器请求资源的Request对象,返回一个包含服务器资源的Respon对象
完整语法requests.get(url,params=None,**kwargs)

get()方法参数 说明
url 拟获取页面的URL链接
params url中的额外参数,控制字典或字节流格式(可选)
**kwargs 12个控制访问参数

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

基本示例

#在python shell中进行逐行输入import requestsr=requests.get("http://www.baidu.com")r.status_code#返回了200表示访问成功r.text#输出访问内容--发现有部分中文乱码r.encoding#发现编码为ISO-8859-1r.apparent_encoding#发现内容编码为UTF-8r.encoding = 'utf-8'#将读取编码改为utf-8r.text#此时发现输出内容正常

r.encoding:如果header中不存在charset,则认为默认编码为ISO-8859-1
r.apparent_encoding:根据网页内容分析出的编码方式


Requests库异常

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

Response异常

异常 说明
r.raise_for_status() 如果不是200,产生异常 requests.HTTPError

爬取网页通用代码框架

import requestsdef getHtmlText(url):    try:        r = requests.get(url, timeout=30)        r.raise_for_status()#状态码不是200时,引发HTTPError异常        r.encoding = r.apparent_encoding#设置读取编码为页面内容编码,防止乱码        return r.text    except:        return "发生异常"if __name__ == "__main__":    url="http://www.baidu.com"    print(getHtmlText(url))

通过r.raise_for_status()以及try--except捕捉访问异常


requests.requests控制访问的参数

参数名 说明
params 字典或字节序列,作为参数增加到url中
data 字典,字节序列或文件对象,作为Request的内容
json JSON格式的数据,作为Request的内容
headers 字典,HTTP定制头(模拟浏览器进行访问)
cokies 字典或CpplieJar,Request中的cookie
auth 元祖,支持HTTP认证功能
files 字典类型,传输文件
timeout 设定超时时间,秒为单位
proxies 字典类型,设定访问代理服务器,可以增加登陆认证,防止爬虫反追踪
allow_redirects True//False,默认为True,重定向开关
stream True/False,默认为True,获取内容立即下载开关
verify True/False,默认为True,认证SSL证书开关
cert 本地SSL证书路径"""

params参数的例子:
例:kv={'key1':'value','key2':'value2'} r=requests.request('GET','http://python123.io/ws',params=kv) print(r.url)
输出为:http://python.io/ws?key1=value1&key2=value2

各方法语法以及需要的控制参数

语法 可选额外控制参数
requests.get(url, params=None, **kwargs) 12
requests.head(url, **kwargs) 12
requests.post(url, data=None, json=None, **kwargs) 12
requests.put(url, data=None, **kwargs) 12
requests.patch(url, data=None, **kwargs) 12
requests.delete(url, **kwargs) 12
(0)

相关推荐

  • 爬虫-使用Python3爬取360DOC文档

    xlixiaohui关注2018.04.04 11:50:30字数 922阅读 2,798个人博客:http://lixiaohui.livetags:Python3.爬虫.网页.requests.r ...

  • 你要偷偷的学Python,然后惊呆所有人(第七天)

    标题无意冒犯,就是觉得这个广告挺好玩的 文章目录 前言 欢迎来到我们的圈子 初见爬虫 为什么是爬虫 通用爬虫架构 爬虫的工作步骤 优秀爬虫的特性 1.高性能 2.可扩展性 3.健壮性 4.友好性 爬虫 ...

  • python的常用内建模块与常用第三方模块

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 一.常用内置模块 1.datetime Python 提供了一个 time 和 calendar 模 ...

  • Python 抓取网页乱码原因分析

    在用 python2 抓取网页的时候,经常会遇到抓下来的内容显示出来是乱码. 发生这种情况的最大可能性就是编码问题:运行环境的字符编码和网页的字符编码不一致. 比如,在 windows 的控制台(gb ...

  • Python Urllib和urllib2哪个模块好?Python入门

    Python是一门高级的编程语言,它语法简单.清晰,容易入门,可用的包.库.模块有很多,即便是初学者也能够快速实现简单的网络爬虫,那么你知道Python中爬虫模块有哪些吗?我们一起来看看吧. Pyth ...

  • 【Python】 简单网络爬虫实现

    引言 网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人.其目的一般为编纂网络索引. --维基百科 网络爬虫可以将自己所访问的页面保存下来,以 ...

  • Python网络爬虫相关基础概念!

    网络爬虫是Python应用领域之一,也是很多学生比较关注的问题,今天就为大家介绍一下Python网络爬虫相关基础概念. 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够 ...

  • 什么是爬虫?Python网络爬虫可以做什么?

    网络爬虫是Python的应用领域之一,世界上80%的爬虫都是基于Python开发的,那么Python爬虫能干什么呢?我们一起来看看吧. 什么是爬虫? 网络爬虫,是一种按照一定的规则,自动地抓取万维网信 ...

  • 一文弄清Python网络爬虫解析库!内含多个实例讲解

    ​ 在了解爬虫基础.请求库和正则匹配库以及一个具体豆瓣电影爬虫实例之后,可能大家还对超长的正则表达式记忆犹新,设想如果想要匹配的条目更加多那表达式长度将会更加恐怖,这显然不是我们想要的,因此本文介绍的 ...

  • 腾讯课堂 | Python网络爬虫与文本分析

    课程纲要 ·课程目标: 掌握Python语法.网络爬虫.文本分析.机器学习的核心知识点和分析思路·核心知识点: 爬虫原理及应用. 非结构化文本数据挖掘的思路及方法.机器学习应用等·环境配置: Pyth ...

  • 优惠券 | Python网络爬虫与文本数据分析

    课程介绍 在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而是数据科学家,尤其是社会科学家,涵盖的学科有 ...

  • Python网络爬虫实战

    一.简介 用途:此程序为爬取链家各城市楼盘信息并存入csv文件中 环境:pthon3 库:requests.re.bs4.pandas 链家新房楼盘网址:https://sh.fang.lianjia ...

  • 腾讯课堂 | Python网络爬虫与文本数据分析

    课程纲要 课程目标: 掌握Python语法.网络爬虫.文本分析.机器学习的核心知识点和分析思路 核心知识点: 爬虫原理及应用. 非结构化文本数据挖掘的思路及方法.机器学习应用等 环境配置:  Pyth ...

  • 手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)

    大家好,我是Python进阶者. 前言 前几天雪球兄在Python交流群里分享了一个获取B站视频选集的Python代码,小编觉得非常奈斯,这里整理成一篇小文章,分享给大家学习. 关于雪球兄,大家应该都 ...

  • SmartScraper | 简单、自动、快捷的Python网络爬虫

    SmartScraper使页面数据抓取变得容易,不再需要学习诸如pyquery.beautifulsoup等定位包,我们只需要提供的url和数据给ta学习网页定位规律即可. 一.安装 pip inst ...