网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。其本质就是利用脚本发送请求,解析响应,然后提取有用信息,最后保存下来。

python由于语法简单,可用的包/库/模块也多,即使是初学者也能够快速实现简单的网络爬虫,给人很大鼓舞和学下去的动力。今天,小编来总结一下关于网络爬虫的模块(依据python2)。

一,标准库中的urllib模块

urllib.urlopen方法:传入一个url链接,用于打开该链接。

urllib.urlencode方法:参数是词典,它可以将key-value这样的键值对转换成我们想要的格式,将URL中的键值对以连接符&划分

urllib.quote方法:只想对一个字符串进行urlencode转换的时候

urllib.urlretrieve方法:传入一个url链接,适用单纯的只下载的功能

二,标准库中的urllib2模块

也是标准库中用于访问网络的模块,不过与上面的urllib模块有区别:

urllib2.urlopen方法:可以接受一个Request对象或者url

urlencode,urllib2没有urlencode方法

urllib2.Request(url[, data][, headers][, originreqhost][, unverifiable])类:是一个抽象的URL请求

urllib2.installopener(opener)和urllib2.buildopener([handler, ...]) 方法:这两个方法一般是一起用的,installopener 实例化会得到OpenerDirector 对象用来赋予全局变量opener。如果想用这个opener来调用urlopen,那么就必须实例化得到OpenerDirector;这样就可以简单 的调用OpenerDirector.open()来代替urlopen()。build_opener实例化也会得到 OpenerDirector对象,其中参数handlers可以被BaseHandler或他的子类实例化。子类中可以通过以下实例化:ProxyHandler (这个用于代理,会经常用到), UnknownHandler, HTTPHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler, FTPHandler, FileHandler, HTTPErrorProcessor。

三,第三方的requests模块

它是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,使用比标准库的urllib模块方便简单。

requests.get(url):发送get请求

requests.post(url,data={'key':'value'}):发送post请求

requests.get(url).text:使用text响应内容,会自动推测响应的编码 #post请求也一样

requests.get(url).content:使用content响应内容,是以二进制响应内容 #post请求也一样

requests.get(url).json():JSON 响应内容,会解析json数据 #post请求也一样

requests.get(url).raw:使用raw响应内容,获取来自服务器的原始套接字响应 #post请求也一样

requests.get(url,headers=headers):定制请求头,其中headers={'user-agent':'my-app/0.0.1'}

四,标准库的httplib模块

httplib实现了HTTP和HTTPS的客户端协议,这个是底层的模块,是urllib等模块的基础,一般比较少直接用到。

httplib.HTTPConnection(host[, port[, strict[, timeout]]])类:用于创建一个http类型的请求链接对象

conn.request(method, url[, body[, headers]])方法:用于发送请求,其中conn是HTTPConnection的实例

conn.getresponse()方法:用于获取一个http响应对象,其中conn是HTTPConnection的实例

conn.close()方法:用于关闭指定的http连接,其中conn是HTTPConnection的实例

res.read([amt])方法:用于获得http响应的内容部分,即网页源码,其中res是HTTPResponse的实列

python爬虫模块_python实现爬虫的模块总结相关推荐

  1. python网络爬虫应用_Python网络爬虫(requests模块应用1)

    一.什么是requests模块? requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位. 二.为什 ...

  2. python 爬虫框架_Python网络爬虫-scrapy框架的使用

    1. Scrapy 1.1 Scrapy框架的安装 Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted .lxml和pyOpenSSL.在不同的平台环境下,它所依赖 ...

  3. python avg函数在哪个模块_python数据处理工具–Pandas模块

    健壮的数据处理模块Pandas,能够处理数据的预处理作业,如数据类型的转化.缺失值的处理.描绘性核算分析和数据的汇总等 一.序列与数据框的结构 Pandas模块的中心操作政策为序列和数据框.序列指数据 ...

  4. python必学的模块_Python必学的模块有哪些?

    展开全部 简单来说,模块就是一堆代码实现某个功32313133353236313431303231363533e4b893e5b19e31333433653866能,它们是已经写好的.py文件,在我们 ...

  5. 如何下载python模块_Python第三方库(模块)下载和安装(使用pip命令)

    进行 Python 程序开发时,除了使用 Python 内置的标准模块以及我们自定义的模块之外,还有很多第三方模块可以使用,这些第三方模块可以借助 Python官方提供的查找包页面(https://p ...

  6. python找不到os模块_Python中的OS模块:您需要知道的一切

    Python是当今业界最强大的编程语言之一.由于Python具有许多特性和强大的通用性,许多复杂的编程目标可以很容易地在Python中实现.在本文中,我们将按照以下顺序讨论Pyt Python是当今业 ...

  7. python 爬虫论_Python网络爬虫(理论篇)

    欢迎关注公众号:Python爬虫数据分析挖掘,回复[开源源码]免费获取更多开源项目源码 网络爬虫的组成 网络爬虫由控制节点,爬虫节点,资源库构成. 网络爬虫的控制节点和爬虫节点的结构关系 控制节点(爬 ...

  8. python中xlrd模块_Python中的xlrd模块使用原理解析

    on里面的xlrd模块详解(一) - 疯了的小蜗 - 博客园[内容]:> 那我就一下面积个问题对xlrd模块进行学习一下: 什么是xlrd模块? 为什么使用xlrd模块? 1.什么是xlrd模块 ...

  9. python爬虫模块_python之爬虫_模块

    asdf The Dormouse's story总共 f Once upon a time there were three little sisters; and their names were ...

最新文章

  1. linux mysql select_MySQL-Select语句高级应用
  2. android点击灰色背景图片,android button按键失去焦点和点击后改变背景图片
  3. [ACL2020]Generalizing Natural Language Analysis through Span-relation Representations
  4. 清华计算机系上热搜!近9成优秀毕业生放弃留学,前50名41人留校深造
  5. Client.Timeout exceeded while awaiting headers
  6. 容器编排技术 -- Kubernetes kubectl create secret docker-registry 命令详解
  7. phpcms图片无法上传
  8. python3socket非阻塞在linux里无效_利用Python中SocketServer实现客户端与服务器间非阻塞通信方法介绍...
  9. ES6 Number
  10. python实现时间戳和时间格式转换以及当前时间,特定时间的前后偏移
  11. 内存延时cl_内存延迟和内存时序有什么关系?内存速率和时钟周期| Crucial(英睿达)...
  12. html 广告弹窗代码,广告弹窗.html
  13. 学长教你学C-day9-C语言循环结构与选择结构
  14. sublime3注册机使用
  15. 把数字用拼音表示并输出
  16. linux 4.6发布时间,Linux Kernel 4.6的第4个维护版本发布
  17. 赋值运算符与逗号运算符
  18. 顺序表--C语言版(从0开始,超详细解析 ,小白一听就懂!!!)
  19. b500k电位器引脚接法_电位器的作用以及接线方式,电位器的应用场合、选用原则...
  20. 俞敏洪微博经典语录:年轻人该如何恋爱

热门文章

  1. you may be a victim of software counterfeiting 的解药(亲自验证过方法2)
  2. ASP.NET Core 模型验证的一个小小坑
  3. 广度优先搜索(BreadthFirstSearch) 迪克斯特拉算法 (Dijkstra's algorithm)
  4. captcha.js一个生成验证码的插件,使用js和canvas生成
  5. sql server 清除日志
  6. 如何快速是DNS修改生效
  7. 从30岁到35岁:为你的生命多积累一些厚度(转)
  8. 防止论坛用户重复登录的方法 .
  9. 【转】FPGA+CPU:并行处理大行其道
  10. 微软SQL Server数据库的两种请求游标