python爬虫-urllib,urllib3库的使用

理解虚拟机的使用

由于服务器的开发往往是基于linux系统的,例如Ubuntu,Centos等等,所以如果我们是windows操作系统的个人电脑,利用虚拟机来进行相关后端的学习是非常有好处的,这里只陈述在开发时物理机和虚拟机的python文件的逻辑关系。
本地windows物理机需要有python解释器,pycharm;
pycharm是对本地文件进行编辑的;
虚拟Ubuntu机需要有python解释器;
以上一篇下载一张图片的脚本为例,如果我们运行了Ubuntu虚拟机,通过pycharm创建的文件是在本地的,由于pycharm连接了虚拟机,可以设置自动上传文件,会将我们的本地创建的脚本上传到虚拟机中,在本地运行时,其实是通过虚拟机的解释器来运行虚拟机上的文件,因此我们在程序最后的将图片写入文件中这一操作产生的图片文件,在本地中是不会有的,在pycharm的项目目录中就不会看到,但是虚拟机中的对应的项目目录已经创建图片了,所以我们需要通过pycharm的Romote Host这个窗口将虚拟机中的图片下载到本地。

urllib库的使用

爬虫开发时,一般不会使用这个库,但是我们需要学习这个库。

urllib库简介

urllib是一个用来处理网络请求的python标准库,它包含4个模块

  1. urllib.requests:请求模块,用于发起网络请求
  2. urllib.parse:解析模块,用于解析
  3. urllib.error:异常处理模块,用于处理request引起的异常
  4. urllib.robotparse:用于解析robots.txt文件
urllib.request模块

request模块主要负责构造和发起网络请求,并在其中添加Hearders,Proxy等。利用它可以模拟浏览器的请求发起过程——1.发起网络请求;2.操作cookie;3.添加Hearders;4.使用代理

方法:
urrlib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)

urlopen是一个简单发送网络请求的方法。它接收一个字符串格式的url,它会向传入的url发送网络请求,然后返回结果

from urllib import request
response = request.urlopen(rul='http://httpbin.org/get')

urlopen默认会发送GET请求,当传入data参数时,则会发起POST请求。data参数是字节类型、或者类文件对象或可迭代对象。

response = request.urlopen(url='http://httpbin.org/post',data=b'username=wgdh&password=123456')

还可以设置超时,如果请求超过设置时间,则抛出异常。timeout没有指定则用系统默认设置,timeout只对http,https以及ftp连接起作用,它以秒为单位,比如可以设置timeout=0.1 超时时间为0.1秒

reponse = request.urlopen(url='http://www.baidu.com',timeout=0.1)

以下是通过request代理的脚本:

from urllib import request
'''
urllib库
'''
# 设置超时
request.urlopen("http://httpbin.org/get",timeout=0.1)

# 发送一个get请求
response = request.urlopen(url="http://httpbin.org/get")

# 发送一个post请求
response2 = request.urlopen(
    url="http://httpbin.org/post",
    data = b'username=wgdh&password=123456'
)
urllib.Response对象

urllib库中的类或者方法,在发送网络请求后,都会返回一个urllib.response的对象,它包含了请求回来的数据结果。并且还包含了一些属性和方法,供我们处理返回的结果

  1. read()获取响应返回的数据,只能用一次
print(reponse.read(
  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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 ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值