首页 > 其他分享 >网络爬虫的常用技术

网络爬虫的常用技术

时间:2022-11-23 15:41:48浏览次数:27  
标签:常用 HTTP 请求 爬虫 urllib 网络 模块 httpbin requests


Python中实现HTTP网络请求常见的3种方式为:urlib,urllib3和requests。下面将一一进行介绍

1.urllib模块

urllib是Python自带模块,该模块中提供了一个urlopen()方法,通过该方法指定URL发送网络请求来获取数据。urllib提供了多个子模块,具体的模块名称与含义如下:

模块名称

描述

urllib.request

该模块定义了打开url(主要是HTTP)的方法和类,如身份验证、重定向、cookie等

urllib.error

该模块主要包含异常类,基本的异常类是urlerror

urllib.parse

该模块定义的功能分为两大类:URL解析和URL引用

urllib.robotparser

该模块用于解析robots.txt文件

通过urllib.request模块实现发送请求并读取网页内容的简单实例如下:

网络爬虫的常用技术_入门

上面的实例中,是通过get请求方式获取百度的网页内容。下面通哪个更使用urllib.request模块的post请求实现 获取网页信息的内容,实例如下:

网络爬虫的常用技术_python_02

这里通过http://httpbin.org/posr网站进行演示,该网站可以作为联系使用urllib的一个站点使用,可以模拟各种请求操作。

2.urllib3模块

urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3.urllib3提供了很多Python标准库里没有的重要特性:
(1)线程安全

(2)连接池

(3)客户端ssl/TLS验证

(4)使用多部分编码上传文件。

(5)Helpers用于充实请求并处理HTTP重定向

(6)支持gzip和deflate编码

(7)支持HTTP和socks代理

(8)100%的测试覆盖率

通过urllib3模块实现发送网络请求的实例代码如下:

网络爬虫的常用技术_常用模块_03

post请求实现获取网页信息的内容,代码如下:

网络爬虫的常用技术_网络请求_04

3.requests模块

requests是Python中实现HTTP请求的一种方式,reques是第三方模块,该模块在实现HTTP请求是要比urllib模块简化很多,操作更加人性化。在使用reques模块时需要执行pip install requests代码进行该模块的安装。requests功能那个特性如下。

(1)Keep-Alive &连接池

(2)国际化域名和url

(3)带持久Cookie的会话

(4)浏览器 式的SSL认证

(5)自动内容解码

(6)基本/摘要式的身份认证

(7)优雅的key/value Cookie

(8)自动解压

(9)Unicode响应体

(10)HTTP(S)代理支持

(11)文件分块上传

(12)流下载

(13)连接超时

(14)分块请求

(15)支持.netrc

以GET请求方式为例,打印多种请求信息的实例代码如下:

网络爬虫的常用技术_网络请求_05

以post请求方式,发送HTTP网络请求的实例代码:

网络爬虫的常用技术_入门_06

 

requests模块不仅提供了以上 两种常用请求方式,还提供一下多种网络请求方式。代码如下:

requests.put('http://httpbin.org/put',data={'key':'value'})  #put请求
requests.delete('http://httpbin.org/delete') #delete请求
requests.head('http://httpbin.org/get') #head请求
requests.options('http://httpbin.org/get') #option请求

 如果发现请求的url地址中参数是在“?(问号)”的后面,例如,httpbin.org/get?key=val.requests模块提供了传递参数的方法,允许用户使用params关键字参数,以一个字符串字典来提供这些参数。例如,用户想传递key1=value1和key2=value2到httpbin.org/get,那么可以使用以下代码

import requests
payload={'key1':'value1','key2':'value2'} #传递的参数
#对需要爬取的网页发送请求
response=requests.get("http://httpbin.org/get",params=payload)
print(response.content) #以字节流形式打印网页源码

 

标签:常用,HTTP,请求,爬虫,urllib,网络,模块,httpbin,requests
From: https://blog.51cto.com/u_15888443/5881352

相关文章

  • 网络爬虫入门
    网络爬虫,又称作网络蜘蛛、网络机器人,在某社区中经常被称为网页追逐者。可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过Python可以很轻松地编写爬虫程序或......
  • 卷积神经网络(CNN)(中)
    4.GoogleNet GoogleNet(也可称作Inception)是在2014年由GoogleDeepMind公式的研究员提出的一种全新的深度学习结构,并取得了ILSVRC2014比赛项目的第一名。GooleNet共有22层,并......
  • 网络原理练习题(含答案)
    一、填空题(每空1分,共10分) 1. 在采用电信号表达数据的系统中,数据有数字数据和__模拟数据____两种。2.国际标准化组织ISO提出的不基于特定机型、操作系统或公司的网络体系结构......
  • 常用js库和框架(vue&element ui与webpy)
        编写前端代码的同学都知道,目前最火的前端代码是vue&elementui,而后端个人又比较喜欢用webpy,那么这两者是怎么配合的。现在都说要实现前后端分离,两者的json数据......
  • 常用js库和框架(three.js)
        three.js是web上面经常使用到的一个3d库。它在web领域里面的流行程度,有点类似于linux里面的opengl,windows里面的d3d。初学3d库,大家不要有什么畏难情绪,只要一步......
  • 常用js库和框架(ueditor)
        在前端开发的过程当中,文本的编辑一般都是少不了的。但是文本的编辑比较复杂,常常涉及到字体、图片、布局等很多内容。因此,有一个得心应手的editor编辑器是非常重......
  • 常用js库和框架(echarts)
    前端库,不管是饼图、柱状图,都可以很轻松的画出来。所需要的准备,就是把数据准备好就可以了。下面一个简单的例子来说明下,1、准备demo文件<head><metacharset="utf-8"/>......
  • Composer 常用命令
    使用composer下载更新卸载类库前言:要下载什么包,可以去 https://packagist.org/ 找一下包名及其版本信息1)配置composer.json文件,并使用composerinstall命令下载类......
  • OpenSUSE 常用命令
    开启SSH防火墙允许SSH搜索YaSTFirewall,打开防火墙配置。在public中添加ssh即可。开启SSHvi/etc/ssh/sshd_configPasswordAuthenticationyesservicesshd......
  • 全球名校AI课程库(41)| WUSTL · 深度神经网络应用全案例实操系列课程『Applications of
    <divalign=center><imgalt="T81-558;ApplicationsofDeepNeuralNetworks;深度神经网络应用案例实操"src="http://tva1.sinaimg.cn/large/0060yMmAly1h6wx48cg8hj31k......