python爬虫基础1

requests的基本用法

import requests
response.requests()

requests.get('https://weibo.com/') #GET请求

requests.post('https://weibo.com/') #POST请求

requests.put('https://weibo.com/') #PUT请求(提交修改全部的数据)

requests.delete('https://weibo.com/') #DELETE请求

requests.head('https://weibo.com/') #HEAD请求

requests.patch('https://weibo.com/') #PATCH请求(提交修改部分数据)

一般我们都使用GET和POST这两种方法爬取网页

>>> import requests
>>> response = requests.get('https://www.weibo.com/')
#使用requests之后会返回一个response的对象
#其里面存储了服务器响应的内容
>>> response
<Response [200]>
>>> response.text
	#微博网页源码   
>>> response.encoding
'ISO-8859-1'
#这里response的编码方式是ISO,我们可以通过以下代码将编码方式更改为utf-8
>>>response.encoding = 'utf-8'
>>> response.encoding
'etf-8'

常用属性:

>>>r.status_code #HTTP响应状态码,200表示响应成功,404表示失败
>>>r.content #HTTP响应内容的二进制形式
>>>r.text #字符串方式的响应体,
>>>r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
>>>#(要注意区分r.headers,与前面的headers参数字段,前者只是Response对象的一个属性,后者是传递的参数)
>>>r.encoding#从HTTP头header中提取响应内容的编码方式(这个编码方式不一定存在)
>>>r.apparent_encoding#从内容中分析出响应内容的编码方式(这个编码方式是绝对正确的)
>>>r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取

在这里有一个比较特殊的属性: r.request.headers可以查看HTTP请求的头部,注意区分r.headers

常用方法:

>>>r.raise_for_status() #失败请求(非200响应)抛出requests.HTTPError异常
Requests库的异常:
>>>requests.ConnectionError: 网络连接错误异常,如DNS查询失败,拒接连接等
>>>requests.HTTPError: HTTP错误异常
>>>requests.URLRequired: URL缺失异常
>>>requests.TooManyRedirects: 超过最大重定向次数,产生的重定向异常
>>>requests.ConnectTimeout: 远程连接服务器异常超时
>>>requests.Timeout: 请求URL超时,产生的超时异常

requests的应用:

  • 想用requests来访问网页,还有个最重要的,就是设置requests对象response的头部信息
    因为服务器可以通过读取请求头部的用户代理(user agent)来判断这个请求是正常浏览器还是爬虫
>>> url = 'https://www.weibo.com/'
>>> headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'}
>>> response = requests.get(url, headers=headers)

以上,就可以使用requests来正常访问网页了

Urllib库介绍

Urllib是什么

Urllib是一个用户操作URL的模块,其主要含有以下四个模块,
urllib.request———打开和读取URL
urllib.error———包含Urllib.request 各种错误的模块
urllib.parse———解析URL
urllib.robotparse———解析网站robots.txt的文件

  • Urllib的基本用法
    下面是如何使用Urllib库发送GET请求
    (还是以获取微博首页代码为例)
>>> from urllib.request import urlopen
>>> html = urlopen('https://www.weibo.com/')
>>> response = html.read()
>>> print(response)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值