Python爬虫:史上最详细的Python爬虫库urllib讲解,绝对经典,值得收藏

网络库urllib

urllib库是Python3内置的HTTP请求库,不需要单独安装,默认下载的Python就已经包含了该库。

urllib库有4个模块:

  1. request:最基本的HTTP请求模块,可以用法发送HTTP请求,并接收服务器的响应数据,这个过程就像在浏览器地址栏输入URL一样。
  2. parse:工具模块,提供了很多处理URL的API,如拆分、解析、合并等。
  3. robotparser:用来识别网站的robots.txt文件,然后判断哪些网站可以抓取,哪些不能抓取。
  4. error:异常处理。如果出现请求错误,可以捕获这些异常,然后根据代码的需要,进行处理。

下面,我们来分别介绍urllib库这4个模块。

request

request模块,包含发送请求,获得响应,Cookie,代理等相关API。这里,我们分别来介绍其使用的方式。

发送GET请求

首先,我们一般进行爬虫程序编写时,开始都需要发送请求,然后获得响应进行处理。比如通过GET请求获取网页源代码,示例如下:

import urllib.request

response=urllib.request.urlopen("https://www.csdn.net/")
print(response.read().decode("UTF-8"))

如上面代码所示,运行之后,我们会得到网页html源代码。

获取网页源代码

这里response是一个HTTPResponse对象,调用它多种方法及其属性,就可以进行多样的处理。

比如,我们这里来获取CSDN首页,调用其属性及其方法,示例如下:

import urllib.request

response = urllib.request.urlopen("https://www.csdn.net/")
print("status:", response.status, "  msg:", response.msg, "  version:", response.version)
print(response.getheaders())

这里,我们输出了CSDN首页的响应状态码,响应消息以及HTTP版本的属性,同时也打印其完整的响应头信息。

属性与方法

发送POST请求

默认request.urlopen()函数发送的GET请求,如果需要发送POST请求,我们需要使用data命令参数,该参数类型是bytes。示例代码如下:

import urllib.request
import urllib.parse

data = bytes(urllib.parse.urlencode({
   'username': 'name', 'age': '123456'}), encoding="UTF-8")
response = urllib.request.urlopen("http://httpbin.org/post", data=data)
print(response.read().decode("UTF-8"))

运行之后,如果请求成功就会返回一大堆字符串数据。

效果

请求超时处理

在实际的爬虫项目中,我们都需要考虑一个关键的问题,那就是请求超时。如果请求网址因为长时间没有响应,那么卡在这里往往浪费大量的资源。

所以,我们需要设置一个超时时间,如果在限定的时间没有响应,就应该重新抓取,或者不在抓取。示例代码如下:

import urllib.request
import urllib.parse
import urllib.error
import socket

data = bytes(urllib.parse.urlencode({
   'username': 'name', 'age': '123456'}), encoding="UTF-8")
  • 13
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论
Python爬虫教程urllib主要是介绍了Python爬虫技术中的urllib的基础用法。该教程详细讲解urllib的各种功能和方法,包括发送请求、处理响应、设置请求头、处理异常等。这个教程对于想要学习和使用Python进行网络爬虫的人来说具有很大的参考价值。 同时,该教程也提到了一些常见的问题和解决方法,例如模拟超时的处理方法。在网络爬虫中,有时候我们长时间无法访问一个页面,可能是因为网速有限或者被发现我们是一个爬虫。针对这种情况,可以使用timeout参数来设置超时时间,如果超过了设定的时间仍无法获取响应,则会抛出URLError异常,我们可以在异常处理中对超时进行相应的处理。 总的来说,Python爬虫教程urllib是一个很好的学习资源,适合想要入门或深入学习Python爬虫技术的人使用。它提供了详细的教程和实例,可以让你快速上手和掌握使用urllib进行网络爬虫的基本知识和技巧。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python爬虫urllib基础用法教程](https://download.csdn.net/download/weixin_38656741/12858843)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Python爬虫 —— urllib的使用(get/post请求+模拟超时/浏览器)](https://blog.csdn.net/qq_50587771/article/details/123840479)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python爬虫urllib3的使用示例](https://download.csdn.net/download/weixin_38681147/12867742)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李元静

您的鼓励就是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值