浅谈Python两大爬虫库—urllib库和requests库区别

  发布时间:2025-11-05 01:28:30   作者:玩站小弟   我要评论
一、前言在使用Python爬虫时,需要模拟发起网络请求,主要用到的库有requests库和python内置的urllib库,一般建议使用requests,它是对urllib的再次封装。那它们两者有什么 。

一、浅谈区别前言

在使用Python爬虫时,爬虫需要模拟发起网络请求,库ub库s库主要用到的浅谈区别库有requests库和python内置的urllib库,一般建议使用requests,爬虫它是库ub库s库对urllib的再次封装。

那它们两者有什么区别 ?浅谈区别

下面通过案例详细的讲解 ,了解他们使用的爬虫主要区别。

二、库ub库s库urllib库

简介:

urllib库的浅谈区别response对象是先创建http,request对象,爬虫装载到reques.urlopen里完成http请求。库ub库s库

返回的浅谈区别是http,response对象,爬虫实际上是库ub库s库html属性。使用.read().decode()解码后转化成了str字符串类型,decode解码后中文字符能够显示出来。

from urllib import request #请求头 headers = {     "User-Agent": Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36 } wd = {"wd": "中国"} url = "http://www.baidu.com/s?" req = request.Request(url, headers=headers) response = request.urlopen(req) print(type(response)) print(response) res = response.read().decode() print(type(res)) print(res) 

运行结果:

注意:

通常爬取网页,在构造http请求的时候,都需要加上一些额外信息,什么Useragent,cookie等之类的云服务器提供商信息,或者添加代理服务器。往往这些都是一些必要的反爬机制。

三、requests库

简介:

requests库调用是requests.get方法传入url和参数,返回的对象是Response对象,打印出来是显示响应状态码。

通过.text 方法可以返回是unicode 型的数据,一般是在网页的header中定义的编码形式,而content返回的是bytes,二级制型的数据,还有 .json方法也可以返回json字符串。

如果想要提取文本就用text,但是如果你想要提取图片、文件等二进制文件,就要用content,当然decode之后,中文字符也会正常显示。b2b信息网

requests的优势:

Python爬虫时,更建议用requests库。因为requests比urllib更为便捷,requests可以直接构造get,post请求并发起,而urllib.request只能先构造get,post请求,再发起。

例:

import requests headers = {     "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36" } wd = {"wd": "中国"} url = "http://www.baidu.com/s?" response = requests.get(url, params=wd, headers=headers) data = response.text data2 = response.content print(response) print(type(response)) print(data) print(type(data)) print(data2) print(type(data2)) print(data2.decode()) print(type(data2.decode())) 

运行结果 (可以直接获取整网页的信息,打印控制台):

四、总结

本文基于Python基础,主要介绍了urllib库和requests库的区别。

在使用urllib内的request模块时,返回体获取有效信息和请求体的拼接需要decode和encode后再进行装载。进行http请求时需先构造get或者post请求再进行调用,header等头文件也需先进行构造。

requests是对urllib的进一步封装,因此在使用上显得更加的便捷,建议在实际应用当中尽量使用requests。

希望能给一些对爬虫感兴趣,有一个具体的概念。方法只是一种工具,试着去爬一爬会更容易上手,服务器租用网络也会有很多的坑,做爬虫更需要大量的经验来应付复杂的网络情况。

希望大家一起探讨学习, 一起进步。

  • Tag:

相关文章

  • 电脑系统升级指南(轻松提升电脑速度,享受高效办公)

    摘要:随着科技的发展,固态硬盘SSD)作为一种新型的存储设备,逐渐受到广大用户的青睐。相较于传统的机械硬盘,固态硬盘具备更高的读写速度和更低的能耗,能够显著提升电脑系统的性能。本文将为...
    2025-11-05
  • 无服务器如何推动创新?

    当新技术出现时,人们首先采用新技术是因为它们带来的价值。如果这一价值得到了证实,那么就达到了“跨越鸿沟”的神奇时刻:当一项技术通过已经证实的商业价值跃升到广泛采用的程度,并将会成为主流。然而,一些技术
    2025-11-05
  • 首席信息安全官为何需要理解AI技术栈——网络安全视角

    随着人工智能技术的普及,相关风险也在蔓延。安全负责人正面临保护尚未完全理解的系统的挑战,这构成了重大隐患。帕拉丁全球研究所最新报告《AI技术栈:技术与网络政策入门》系统剖析了AI系统的构建原理及主要安
    2025-11-05
  • 呵护你的眼睛-电脑护眼工具CareUEyes

    一、概述CareUEyes Pro 是一款实用的软件,用于调整屏幕的亮度和颜色以及蓝光过滤器,可以防止用户在使用电脑时感到疲倦和昏昏欲睡。长时间盯着屏幕和持续工作会使眼睛疲劳并影响用户的表现。Care
    2025-11-05
  • 电脑远程连接显示错误的解决方法(教你如何应对常见的远程连接显示错误)

    摘要:在进行电脑远程连接时,经常会遇到各种显示错误。这些错误信息可能会让人感到困惑和烦恼,影响正常的远程协助或工作。本文将介绍一些常见的远程连接显示错误,并给出解决方法,帮助读者更好地应...
    2025-11-05
  • 预见物联网平台四大发展趋势

    行业人士深谙物联网平台“盈利周期长”“赚钱难”的特点,在进入深耕时期的平台产业,在此期间需要进行产品能力的打磨,同时增加行业应用的积累,物联网平台玩家将会出现以下变化。变化1. IaaS平台正在减少早
    2025-11-05

最新评论