Python爬虫之对requests和urllib库的认识和使用(一)

 

目录

一、认识requests和urllib工具库

二、urllib的具体使用

1.urllib的request模块的urlopen方法可以发送http请求,具体使用:

2.使用response.read()可以获得响应体的内容,具体使用:

3.设置请求头部信息:headers

4.设置代理访问:ProxyHandler(防止ip被封)

5.携带cookie访问(HTTPCookiProcessor)

6.异常处理

7.URL解析

8.urljoin

9.urlencode


一、认识requests和urllib工具库

`urllib是python标准库,就是你安装了python,这个库就已经可以直接使用了。由于urllib只能接收一个url地址而不支持请求的headers操作,所以官方又推出了urllib2,urllib2.urlopen可以接受一个Request对象或者url,但是urllib有urlencode()方法,将字典参数编码成我们想要的请求参数。所以urllib和urllib2经常混用。不过不用担心,python3里,已经合并成了urllib,不存在urllib2了,使用起来更加方便。urllib包含四大模块:request(请求)、error(异常处理)、prse(url解析,拼接,合并,编码)、robotparser(解析robots.txt文件)。

`requests是第三方库,需要独立安装:pip install requests。requests是基于urllib编写的,并且使用起来非常方便,个人推荐使用requests。

二、urllib的具体使用

1.urllib的request模块的urlopen方法可以发送http请求,具体使用:

#1.最基本的打开网页

response = urllib.request.urlopen(url,data=None,[timeout,],,)

参数解释:url代表目标网址,data代表请求携带的参数有data就是post,不添加就是get请求,timeout是设置超时时间。

 

2.使用response.read()可以获得响应体的内容,具体使用:

# 1.直接将整个页面以二进制格式返回
print(response.read())
# 2.返回得是二进制格式得页面中得第一行
print(response.readline())
# 3.以二进制格式 返回所有得数据 以列表格式保存
print(response.readlines())
# 4.获取状态码 --200 代表得是服务器响应成功  我们测试得习惯上加这行代码 判断是否成功返回
print(response.getcode())
# 5.获取响应头
print(response.getheaders())
# 6.获取url
print(response.geturl())
 

3.设置请求头部信息:headers


方式一:构建请求对象时添加。代码示例:

#请求地址
url = 'www.baidu.com'
#设置请求头
headers = {
          'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
          'Host': 'httpbin.org'
          }
#设置请求参数
dict = {
         'name': 'zhaofan'
       }
#参数转化
data = bytes(parse.urlencode(dict), encoding='utf8')
#构建一个请求对象
req = request.Request(url=url, data=data, headers=headers, method='POST')
#发送请求
response = request.urlopen(req)
#打印相应内容
print(response.read().decode('utf-8'))

方式二:构建请求对象后,使用add_header添加。示例代码:

from urllib import request, parse
#
url = 'www.bai
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬虫中的区别和使用建议是什么? 回答: Python中有两个常用于爬虫,分别是urllibrequests。在Python 2中,urlliburllib2同时存在,分别负责不同的功能,有些功能需要从urllib中导入。而在Python 3中,urllib已经整合了urllib2的功能,只保留了urllib一个标准,并且在功能和易用性上进行了改进。另外,还有一个值得注意的是,虽然urllib在人性化方面和requests存在差距,但urllibPython标准,自带安装,无需额外安装。而requests需要单独安装,但它更为便捷,可以直接构造get、post请求并发起,相比之下urllib.request只能先构造请求,再发起。因此,对于爬虫任务,建议使用requests,它更易用且功能更丰富。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python urllib, urllib2, urllib3 以及 requests 的区别 (附个人一些看法)](https://blog.csdn.net/Likianta/article/details/126705631)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [浅谈Python两大爬虫——urllibrequests区别](https://blog.csdn.net/pdcfighting/article/details/117049893)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值