iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >爬虫养成记 - 网络下载器urllib
  • 179
分享到

爬虫养成记 - 网络下载器urllib

爬虫下载器网络 2023-01-31 08:01:50 179人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

申明:本系列文章借鉴了慕课网的课程,Http://www.imooc.com/learn/563。慕课网是一个非常赞的学习网站。 urllib2是python2.x下的一个模块,在python3.x中,urllib2被拆分成urllib.

申明:本系列文章借鉴了慕课网的课程,Http://www.imooc.com/learn/563。慕课网是一个非常赞的学习网站。

urllib2是python2.x下的一个模块,在python3.x中,urllib2被拆分成urllib.request和urllib.error.

实现一个最简单的下载器

使用urllib2.urlopen(url)函数可以给服务器发送一个请求。
该函数返回一个file-like object. 该返回的对象有三个额外的函数:

  • geturl() 取得服务器返回的url。一般用来判断是否需要重定向。

  • info() 获取页面的meta信息

  • getcode() 获取响应的http状态码

例如我们写了一小段程序

import urllib2

response = urllib2.urlopen("http://www.baidu.com")
print response.getcode()
print response.info()

用来下载百度首页的内容。

构造一个request对象

urllib2.urlopen()函数不仅仅能接收一个url字符串,还能接收一个request对象。
我们可以在Request对象中添加数据和header。

设置请求头

import urllib2

request = urllib2.Request('https://www.zhihu.com/question/28593608/answer/141936198')
request.add_header('User-Agent', 'Mozilla/5.0')

response = urllib2.urlopen(request)
print response.read()

Post请求方法和在请求中添加数据

上面的代码是一个爬取知乎某一个回答的代码。我们可以看到,我们并没有在request中添加data。
urllib2 默认没有data的,请求方式为GET。
urllib2 如果添加了data,那么请求方式为POST。
例如:

import urllib

values = {
    "name": "charlie",
    "age": 20,
    "gender": "male"
}

data = urllib.urlencode(values)

request.add_data(data)

我们使用POST方式提交数据的时候,我们需要创建一个字典型数据,并且用urllib.urlencode()函数将器编码成字符串,并用Request.add_data()函数添加到request中。

cookie、https、Proxy、HttpRedirect

实际情况中,往往比上面的更加复杂,例如很多网站会设置cookie、可以会使用https加密传输,可能会设置代理,会有重定向等。
如何要处理上面这些特殊的情境,那么我们则需要添加特殊的处理器。

  • HTTPCookieProcessor

  • ProxyHandler

  • HTTPHandler

  • HTTPRedirectHandler

构造好上述对象后,需要运用urllib2.build_opener()创建一个opener.
然后将opener安装到urllib2中: urllib2.install_opener(opener)。
例如:

import urllib2
import cookielib

cookie_jar = cookielib.CookieJar()
cookie_processor = urllib2.HTTPCookieProcessor(cookiejar=cookie_jar)
opener = urllib2.build_opener(cookie_processor)
urllib2.install_opener(opener)

response = urllib2.urlopen("http://www.baidu.com")
for item in cookie_jar:
    print item.name, item.value

如上述代码所示,我们先新建了一个CookieJar。CookieJar是一个内存中保存cookie的对象。
然后我们构造一个cookie的处理器——HTTPCookieProcessor。
然后我们在根据cookie处理器构造一个opener。

opener的概念

opener我们可以理解成打开网页获取response的东西。默认的opener只能接收url、data或resquest等的一个opener。
如果我们想要获得更加多的功能,那么我们就需要构造一个有HttpCookieProcessor的opener。

更多关于urllib2的opener概念,可以阅读一篇非常棒的文章:http://cuiqinGCai.com/968.html

--结束END--

本文标题: 爬虫养成记 - 网络下载器urllib

本文链接: https://www.lsjlt.com/news/193090.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 爬虫养成记 - 网络下载器urllib
    申明:本系列文章借鉴了慕课网的课程,http://www.imooc.com/learn/563。慕课网是一个非常赞的学习网站。 urllib2是python2.x下的一个模块,在Python3.x中,urllib2被拆分成urllib....
    99+
    2023-01-31
    爬虫 下载器 网络
  • node网络爬虫实例了解下?
    今天给大家分享的是node爬虫,写得不好的大家多关照,指出 背景交代,以下写的demo都是参照《python3网络爬虫开发实战》用node实现的,所以demo的具体思路什么的,大家可以去看书上的介绍,感兴趣的,可以去了解一波。 [x] ...
    99+
    2023-01-31
    爬虫 解下 实例
  • 如何使用Python网络爬虫实现起点小说下载
    如何使用Python网络爬虫实现起点小说下载,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。今天要跟大家分享一个小说爬取案例--------起点小说的小说下载。在做这个案例之...
    99+
    2023-06-15
  • python3爬虫(4)各种网站视频下载
    理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够下载下来,然而实际操作的时候也是有一定难度和技术的,这篇文章主要讲述各个网站视频资源如何下载。   B站视频 页面链接: https://www.bilibili.com/ban...
    99+
    2023-01-31
    爬虫 视频下载 网站
  • 【Python3爬虫】网易云音乐歌单下载
      下载网易云音乐热门歌单     requests,multiprocessing,re。     (1)页面分析:首先打开网易云音乐,选择热门歌单,可以看到以下歌单列表,然后打开开发者工具    因此我们需要请求的url就是...
    99+
    2023-01-30
    爬虫 网易 音乐
  • python3 网页爬虫图片下载无效链
    代码比较粗糙,主要是备忘容易出错的地方。供自己以后查阅。#图片下载import reimport urllib.request    #python3中模块名和2.x(urllib)的不一样site='https://world.taoba...
    99+
    2023-01-31
    爬虫 图片下载 网页
  • python3爬虫-下载网易云音乐,评论
    # -*- coding: utf-8 -*- ''' 16位随机字符的字符串 参数一 获取歌曲下载地址 "{"ids":"[1361348080]","level":"standard","encodeType":"aac...
    99+
    2023-01-31
    爬虫 下载网 音乐
  • python爬虫之小说网站--下载小说(
    python爬虫之小说网站--下载小说(正则表达式) 思路: 1.找到要下载的小说首页,打开网页源代码进行分析(例:https://www.kanunu8.com/files/old/2011/2447.html) 2.分析自己要得到的内...
    99+
    2023-01-30
    爬虫 小说网站 小说
  • PHP学习笔记:网络爬虫与数据采集
    引言:网络爬虫是一种自动从互联网上抓取数据的工具,它可以模拟人的行为,浏览网页并收集所需的数据。PHP作为一种流行的服务器端脚本语言,在网络爬虫和数据采集领域也发挥了重要的作用。本文将介绍如何使用PHP编写网络爬虫,并提供实际的代码示例。一...
    99+
    2023-10-21
    网络爬虫 数据采集 PHP学习
  • Python爬虫怎么全网搜索并下载音乐
    本篇内容主要讲解“Python爬虫怎么全网搜索并下载音乐”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫怎么全网搜索并下载音乐”吧!现在写一篇博客总是喜欢先谈需求或者本内容的应用场...
    99+
    2023-06-15
  • Python:使用爬虫抓取网页中的视频并下载(完整源码)
    Python:使用爬虫抓取网页中的视频并下载(完整源码) 在今天的程序开发世界中,网站是不可或缺的一部分。人们使用网站来获取有用的信息、购买商品和娱乐自己。这些网站的内容通常包含了各种类型的文件,其中...
    99+
    2023-08-31
    python 爬虫 音视频
  • python网络爬虫如何实现个性化音乐播放器
    今天小编给大家分享一下python网络爬虫如何实现个性化音乐播放器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。开发组件py...
    99+
    2023-06-29
  • python网络爬虫实现个性化音乐播放器示例解析
    目录前言开发组件功能流程分析基于python的个性化音乐下载器模块详细(一)前端模块(二)后端模块前言 当前很多人在闲暇时喜欢听音乐,那么基于这种现象,我也是肝了几个小时完成了基于p...
    99+
    2024-04-02
  • 阿里云网络服务器下载详细教程
    随着云计算的快速发展,越来越多的企业和个人开始使用阿里云网络服务器。然而,如何下载阿里云网络服务器却成为了一个问题。本文将为您提供详细的下载教程。 阿里云网络服务器是阿里云推出的一种高性能、高可靠性的云服务器产品,可以为企业和个人提供稳定...
    99+
    2023-11-04
    阿里 云网 服务器
  • 怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS
    怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。今天小编来给大家总结一下这四个选择器,让大家更加深刻的...
    99+
    2023-06-04
  • WindowsXP系统设置虚拟连接附网络加速器下载
      目前很多网友仍在使用WindowsXP系统,不少网友想设置虚拟连接,可是不知道怎么设置?一些网友跟小编反映,他们一直设置不成功,不知道是哪个步骤出错了。所以,今天小编就为大家整理了WindowsXP系统设置虚拟连接的...
    99+
    2023-06-15
    WinXP 虚拟连接 WindowsXP 系统 加速器 网络
  • 阿里云服务器下的载荷投递服务高效稳定的网络传输
    阿里云服务器是阿里集团推出的一种高性能计算服务,为用户提供灵活可扩展的计算资源。而在载荷投递方面,阿里云也提供了相应的解决方案。本篇文章将详细介绍阿里云服务器下的载荷投递服务,包括其工作原理、功能优势以及应用场景。 载荷投递服务是阿里云在云...
    99+
    2023-12-15
    载荷 高效 阿里
  • 记录一下谷歌浏览器在mac启动台生成网页图标的问题
    记录一下谷歌浏览器在mac启动台生成网页图标的问题 如图所示: 谷歌浏览器会在启动台中生成YouTube等网站的图标,个人看起来很烦,给大家提供一下删除方法! Finder->前往->个人 (Shi...
    99+
    2023-09-03
    macos
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作