Python爬虫编程2——请求模块

目录

一.urllib.request模块

1.版本

2.常用的方法

3.响应对象

二.urllib.parse模块

常用方法

四.请求方式

五.requests模块

1.安装

2.request常用方法

3.响应对象response的方法

4.处理不信任的SSL证书

什么是SSL证书?

解决方式

六.反反爬处理

1.User-Agent

2.referer

3.cookie

4.session

5.处理方式


一.urllib.request模块

1.版本

python2:urllib2,urllib

python3:把urllib和urllib2合并

2.常用的方法

(1)urllib.request.urlopen("网址") 作用 :向网站发起一个请求并获取响应;

(2)字节流 = response.read(),得到字节流数据;

(3)字符串 = response.read().decode("utf-8");

(4)urllib.request.Request"网址",headers="字典") urlopen()不支持重构User-Agent。

3.响应对象

(1)read() 读取服务器响应的内容;

(2)getcode() 返回HTTP的响应码;

(3)geturl() 返回实际数据的URL(防止重定向问题)。

二.urllib.parse模块

(用于转换中文字符)

常用方法

(1)urlencode(字典)

(2)quote(字符串)

(3)unquote(字符串),quote的逆操作。

四.请求方式

GET特点:查询参数在URL地址中显示;

POST:

(1)在Request方法中添加上 data 参数;urllib.request.Request(url,data=data,headers=headers)

(2)data:表单数据以bytes类型提交,而不是str。

五.requests模块

1.安装

(1)pip install requests

(2)在开发者工具中进行安装

2.request常用方法

(1)request.get(网址)

(2)request.get(网址,data=表单数据)

这里要注意的是,get和post方法中有很多参数,我们要根据实际情况来进行选择性的添加,而以上我添加的是一定要添加的参数。

3.响应对象response的方法

(1)response.text 返回unicode格式的数据(str)

(2)response.content 返回字节流数据(二进制)

(3)response.content.decode('utf-8') 手动进行解码

(4)response.url  返回url

(5)response.encode() = ‘编码’

4.处理不信任的SSL证书

什么是SSL证书?

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。

解决方式

在请求方法中添加参数  verify=False;即可解决。

测试网站 国家税务总局全国增值税发票查验平台https://inv-veri.chinatax.gov.cn/

import requests

# 目标url
url = 'http://www.chinatax.gov.cn/'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                  'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30'
}

# 如果不被响应,就添加参数 verify=False
res = requests.get(url, headers=headers, verify=False)
print(res.content.decode('utf-8'))

六.反反爬处理

(并不是全部,后续会慢慢讲到)

1.User-Agent

作用:记录用户的浏览器、操作系统等,为了让用户更好的获取HTML页面效果。

2.referer

表明当前这个请求是从哪个url过来的。

3.cookie

通过在客户端记录的信息确定用户身份。用与记录用户信息。

HTTP是一种无连接协议,客户端和服务器交互仅仅限于 请求/响应过程,结束后断开,下一次请求时,服务器会认为是一个新的客户端,为了维护他们之间的连接,让服务器知道这是前一个用户发起的请求,必须在一个地方保存客户端信息。

4.session

通过在服务端记录的信息确定用户身份 这里这个session就是一个指的是会话。

5.处理方式

创建一个字典,将需要用到的参数写入到字典中,最后再将字典传入到请求方法的 headers参数中,则可以解决一些反爬问题。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值