python爬虫模块_python实现爬虫的模块总结
网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。其本质就是利用脚本发送请求,解析响应,然后提取有用信息,最后保存下来。
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实现爬虫的模块总结相关推荐
- python网络爬虫应用_Python网络爬虫(requests模块应用1)
一.什么是requests模块? requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位. 二.为什 ...
- python 爬虫框架_Python网络爬虫-scrapy框架的使用
1. Scrapy 1.1 Scrapy框架的安装 Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted .lxml和pyOpenSSL.在不同的平台环境下,它所依赖 ...
- python avg函数在哪个模块_python数据处理工具–Pandas模块
健壮的数据处理模块Pandas,能够处理数据的预处理作业,如数据类型的转化.缺失值的处理.描绘性核算分析和数据的汇总等 一.序列与数据框的结构 Pandas模块的中心操作政策为序列和数据框.序列指数据 ...
- python必学的模块_Python必学的模块有哪些?
展开全部 简单来说,模块就是一堆代码实现某个功32313133353236313431303231363533e4b893e5b19e31333433653866能,它们是已经写好的.py文件,在我们 ...
- 如何下载python模块_Python第三方库(模块)下载和安装(使用pip命令)
进行 Python 程序开发时,除了使用 Python 内置的标准模块以及我们自定义的模块之外,还有很多第三方模块可以使用,这些第三方模块可以借助 Python官方提供的查找包页面(https://p ...
- python找不到os模块_Python中的OS模块:您需要知道的一切
Python是当今业界最强大的编程语言之一.由于Python具有许多特性和强大的通用性,许多复杂的编程目标可以很容易地在Python中实现.在本文中,我们将按照以下顺序讨论Pyt Python是当今业 ...
- python 爬虫论_Python网络爬虫(理论篇)
欢迎关注公众号:Python爬虫数据分析挖掘,回复[开源源码]免费获取更多开源项目源码 网络爬虫的组成 网络爬虫由控制节点,爬虫节点,资源库构成. 网络爬虫的控制节点和爬虫节点的结构关系 控制节点(爬 ...
- python中xlrd模块_Python中的xlrd模块使用原理解析
on里面的xlrd模块详解(一) - 疯了的小蜗 - 博客园[内容]:> 那我就一下面积个问题对xlrd模块进行学习一下: 什么是xlrd模块? 为什么使用xlrd模块? 1.什么是xlrd模块 ...
- python爬虫模块_python之爬虫_模块
asdf The Dormouse's story总共 f Once upon a time there were three little sisters; and their names were ...
最新文章
- linux mysql select_MySQL-Select语句高级应用
- android点击灰色背景图片,android button按键失去焦点和点击后改变背景图片
- [ACL2020]Generalizing Natural Language Analysis through Span-relation Representations
- 清华计算机系上热搜!近9成优秀毕业生放弃留学,前50名41人留校深造
- Client.Timeout exceeded while awaiting headers
- 容器编排技术 -- Kubernetes kubectl create secret docker-registry 命令详解
- phpcms图片无法上传
- python3socket非阻塞在linux里无效_利用Python中SocketServer实现客户端与服务器间非阻塞通信方法介绍...
- ES6 Number
- python实现时间戳和时间格式转换以及当前时间,特定时间的前后偏移
- 内存延时cl_内存延迟和内存时序有什么关系?内存速率和时钟周期| Crucial(英睿达)...
- html 广告弹窗代码,广告弹窗.html
- 学长教你学C-day9-C语言循环结构与选择结构
- sublime3注册机使用
- 把数字用拼音表示并输出
- linux 4.6发布时间,Linux Kernel 4.6的第4个维护版本发布
- 赋值运算符与逗号运算符
- 顺序表--C语言版(从0开始,超详细解析 ,小白一听就懂!!!)
- b500k电位器引脚接法_电位器的作用以及接线方式,电位器的应用场合、选用原则...
- 俞敏洪微博经典语录:年轻人该如何恋爱
热门文章
- you may be a victim of software counterfeiting 的解药(亲自验证过方法2)
- ASP.NET Core 模型验证的一个小小坑
- 广度优先搜索(BreadthFirstSearch) 迪克斯特拉算法 (Dijkstra's algorithm)
- captcha.js一个生成验证码的插件,使用js和canvas生成
- sql server 清除日志
- 如何快速是DNS修改生效
- 从30岁到35岁:为你的生命多积累一些厚度(转)
- 防止论坛用户重复登录的方法 .
- 【转】FPGA+CPU:并行处理大行其道
- 微软SQL Server数据库的两种请求游标