`
hongtoushizi
  • 浏览: 358419 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Python爬虫入门三之Urllib库的基本使用

阅读更多

 

转载自:  http://cuiqingcai.com/947.html

 

那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧。

1.分分钟扒一个网页下来

怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS、CSS,如果把网页比作一个人,那么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服。所以最重要的部分是存在于HTML中的,下面我们就写个例子来扒一个网页下来。

是的你没看错,真正的程序就两行,把它保存成 demo.py,进入该文件的目录,执行如下命令查看运行结果,感受一下。

2015-02-13 00:09:09 的屏幕截图

看,这个网页的源码已经被我们扒下来了,是不是很酸爽?

2.分析扒网页的方法

那么我们来分析这两行代码,第一行

首先我们调用的是urllib2库里面的urlopen方法,传入一个URL,这个网址是百度首页,协议是HTTP协议,当然你也可以把HTTP换做FTP,FILE,HTTPS 等等,只是代表了一种访问控制协议,urlopen一般接受三个参数,它的参数如下:

第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。

第二三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT

第一个参数URL是必须要传送的,在这个例子里面我们传送了百度的URL,执行urlopen方法之后,返回一个response对象,返回信息便保存在这里面。

response对象有一个read方法,可以返回获取到的网页内容。

如果不加read直接打印会是什么?答案如下:

 

直接打印出了该对象的描述,所以记得一定要加read方法,否则它不出来内容可就不怪我咯!

3.构造Requset

其实上面的urlopen参数可以传入一个request请求,它其实就是一个Request类的实例,构造时需要传入Url,Data等等的内容。比如上面的两行代码,我们可以这么改写

运行结果是完全一样的,只不过中间多了一个request对象,推荐大家这么写,因为在构建请求时还需要加入好多内容,通过构建一个request,服务器响应请求得到应答,这样显得逻辑上清晰明确。

4.POST和GET数据传送

上面的程序演示了最基本的网页抓取,不过,现在大多数网站都是动态网页,需要你动态地传递参数给它,它做出对应的响应。所以,在访问时,我们需要传递数据给它。最常见的情况是什么?对了,就是登录注册的时候呀。

把数据用户名和密码传送到一个URL,然后你得到服务器处理之后的响应,这个该怎么办?下面让我来为小伙伴们揭晓吧!

数据传送分为POST和GET两种方式,两种方式有什么区别呢?

最重要的区别是GET方式是直接以链接形式访问,链接中包含了所有的参数,当然如果包含了密码的话是一种不安全的选择,不过你可以直观地看到自己提交了什么内容。POST则不会在网址上显示所有的参数,不过如果你想直接查看提交了什么就不太方便了,大家可以酌情选择。

POST方式:

上面我们说了data参数是干嘛的?对了,它就是用在这里的,我们传送的数据就是这个参数data,下面演示一下POST方式。

我们引入了urllib库,现在我们模拟登陆CSDN,当然上述代码可能登陆不进去,因为还要做一些设置头部header的工作,或者还有一些参数没有设置全,还没有提及到在此就不写上去了,在此只是说明登录的原理。我们需要定义一个字典,名字为values,参数我设置了username和password,下面利用urllib的urlencode方法将字典编码,命名为data,构建request时传入两个参数,url和data,运行程序,即可实现登陆,返回的便是登陆后呈现的页面内容。当然你可以自己搭建一个服务器来测试一下。

注意上面字典的定义方式还有一种,下面的写法是等价的

以上方法便实现了POST方式的传送

GET方式:

至于GET方式我们可以直接把参数写到网址上面,直接构建一个带参数的URL出来即可。

 

你可以print geturl,打印输出一下url,发现其实就是原来的url加?然后加编码后的参数

 

和我们平常GET访问方式一模一样,这样就实现了数据的GET方式传送。

本节讲解了一些基本使用,可以抓取到一些基本的网页信息,小伙伴们加油!

分享到:
评论

相关推荐

    静觅Python爬虫学习系列教程1

    1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫入

    python爬虫入门到精通必备的书籍.docx

    python爬虫入门到精通必备的书籍全文共7页,当前为第1页。python爬虫入门到精通必备的书籍全文共7页,当前为第1页。python爬虫入门到精通必备的书籍 python爬虫入门到精通必备的书籍全文共7页,当前为第1页。 python...

    Python 网络爬虫开发 Python爬虫入门基础教程:Python的urllib2 模块解析 共6页.pptx

    Python 网络爬虫开发 Python爬虫入门基础教程:Python的urllib2 模块解析 共6页.pptx

    零基础Python爬虫从入门到精通-视频教程网盘链接提取码下载 .txt

    本套视频教程适合想掌握爬虫技术的学习者,以企业主流版本Python 3.7来讲解,内容包括:Python基础、Urllib、解析(xpath、jsonpath、beautiful)、requests、selenium、Scrapy框架等。针对零基础的同学可以从头学起...

    分享一个Python爬虫入门实例(有源码,学习使用)

    Python爬虫是一种使用Python编程语言实现的自动化获取网页数据的技术。它广泛应用于数据采集、数据分析、网络监测等领域。以下是对Python爬虫的详细介绍: 1. **架构和组成**: - **下载器**:负责根据指定的URL...

    Python爬虫史上超详细讲解-这篇文章是一个比较详细的Python爬虫教程,主要内容.md

    这篇文章是这篇文章这篇文章是一个比较详细的Python,主要内容包括: 1. 介绍了爬虫的概念和作用 ...总的来说,这是一篇对Python爬虫入门者很有参考价值的教程,通过实例代码和细致的解释,能够帮助读者快速上手爬虫开发。

    Python爬虫零基础最全入门课程

    Python爬虫零基础最全入门课程,从urllib----->requests----->scrapy,mongodb数据库学习,Fiddler抓包工具的使用

    Python入门网络爬虫之精华版

    Scrapy是一个基于Twisted的开源的Python爬虫框架,在工业中应用非常广泛。 相关内容可以参考基于Scrapy网络爬虫的搭建,同时给出这篇文章介绍的微信搜索爬取的项目代码,给大家作为学习参考。 参考项目:使用...

    介绍新手如何使用python爬虫,快速入门操作

    爬虫基本工作流程:用户使用爬虫获取网页数据的基本流程,发送请求。获取相应内容。解析内容。保存数据。 使用Requests 是用Python语言编写,基于urllib的 HTTP 库。它比 urllib 更加方便,可以节约开发者大量的工作...

    Python3爬虫入门练习

    利用Python3 urllib BeautifulSoup进行一个初学爬虫的小练习

    零基础写python爬虫之urllib2使用指南

    前面说到了urllib2的简单入门,下面整理了一部分urllib2的使用细节。 1.Proxy 的设置 urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy。 如果想在程序中明确控制 Proxy 而不受环境变量的影响,可以使用...

    零基础Python爬虫48小时速成课.txt

    02 1.02爬虫技术库及反爬说明.mp4 03 1.03百度搜索及文件下载.mp4 04 1.04百度翻译之urllib的POST请求.mp4 05 1.05复杂的GET请求多页数据.mp4 06 1.06urllib的build_opener及handlers.mp4 07 1.07上下文扩展和...

    技术更新,战术升级!Python爬虫案例实战从零开始一站通.rar

    Python爬虫案例实战从零开始一站通;20章,共计129节,完整版,附源码;第一章:零基础入门Python网络爬虫 第二章、Urllib模块基础与糗事百科爬虫项目实战 第三章、淘宝商品图片爬虫开发实战 第四章、 用户代理池与...

    零基础学习python及爬虫

    本目录中主要是python基础和爬虫需要用到的常用扩展库的使用 example-1.py python语法基础 example-2.py python控制流与小实例 example-3.py python函数详解 example-4.py python模块实战 example-5.py python文件...

    超级好的Python爬虫工具资源,分享出来.zip

    首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫 当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入http://www.lining0806.com/,你就会看到宁...

    python爬虫入门教程–优雅的HTTP库requests(二)

    好在,还有一个非常惊艳的 HTTP 库叫 requests,它是 GitHUb 关注数最多的 Python 项目之一,requests 的作者是 Kenneth Reitz 大神。 requests 实现了 HTTP 协议中绝大部分功能,它提供的功能包括 Keep-Alive、连接...

    python网络爬虫练习题,学完就能入门python爬虫!

    点亮python技能树上的网络爬虫章节。包含: 1.urllib 2.正则表达式 3.Beautiful Soup 4.lxml 5.requests 6.Selenium 7.Scrapy框架 8.pyspider框架的使用 9.验证码处理 10.动态渲染页面爬取 11.模拟登录 12....

    python网络爬虫入门之request.Request

    python网络爬虫入门之request.Request urllib.request.Request 作用 创建请求对象,重新构造User-Agent(使其更像是人类正常点击) 什么是User-Agent该如何设置 1.当我们向网站发送请求时所传递的信息见下图(也是反爬...

    python爬虫入门教程之点点美女图片爬虫代码分享

    继续鼓捣爬虫,今天贴出一个代码,爬取点点网「美女」标签下的图片,原图。 # -*- coding: utf-8 -*- #--------------------------------------- # 程序:点点美女图片爬虫 # 版本:0.2 # 作者:zippera # 日期:...

    python爬虫(入门教程、视频教程) 原创

    python的版本经过了python2.x和python3.x等版本,无论哪种版本,关于python爬虫相关的知识是融会贯通的,软件开发网关于爬虫这个方便整理过很多有价值的教程,小编通过本文章给大家做一个关于python爬虫相关知识的...

Global site tag (gtag.js) - Google Analytics