python2与python3爬虫中get与post对比解析
python2中的urllib2改为python3中的urllib.request
四种方式对比:
python2的get
# coding=utf-8 import urllib import urllib2 word = urllib.urlencode({"wd":"百度"}) url = 'http://www.baidu.com/s' + '?' + word request = urllib2.Request(url) print urllib2.urlopen(request).read().decode('utf-8')
python3的get
import urllib.request import urllib.parse data = urllib.parse.urlencode({'wd':'百度'}) url = 'http://wwww.baidu.com/s?' + data # url = 'http://www.baidu.com/s?wd=' + urllib.parse.quote('百度') response = urllib.request.urlopen(url) print (response.read().decode('utf-8'))
python2的post
# coding=utf-8 import urllib import urllib2 formdata = { 'name':'百度' } data = urllib.urlencode(formdata) request = urllib2.Request(url = "http://httpbin.org/post", data=data) response = urllib2.urlopen(request) print response.read()
python3的post
import urllib.parse import urllib.request data = bytes(urllib.parse.urlencode({'name':'百度'}),encoding='utf8') response = urllib.request.urlopen('http://httpbin.org/post',data=data) print(response.read().decode('utf-8'))
或
import urllib.parse import urllib.request request = urllib.request.Request('http://httpbin.org/post',data=bytes(urllib.parse.urlencode({'name':'百度'}),encoding='utf8))')) response = urllib.request.urlopen(request) print (response.read().decode('utf-8'))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
python利用urllib和urllib2访问http的GET/POST详解
前言 本文主要给大家介绍了关于python如何访问http的GET/POST的相关内容,使用urllib和urllib2,可以轻松实现对http的访问,下面话不多说了,来一起看看详细的介绍吧. 示例详解 以下给个例子,实现对http://127.0.0.1/cgi/test的GET与POST 使用的是平常意义上的query string POST接受json 其中, urllib2的Request方法如果只带一个参数是GET方法,但如果带两个参数,则为http的POST方法,第二个参数为POST
-
Python 2与Python 3版本和编码的对比
一.版本对比 首先要说的是,Python的版本,目前主要分为两大类: Python 2.x的版本的,被称为Python2:是目前用的最广泛的,比如Python 2.7.3. Python 3.x的版本的,被称为Python3:是最新的版本的,比如Python 3.1.长远来看,也算是以后的趋势. [Python2和Python3之间的区别] 1.从Python2到Python3,很多基本的函数接口变了,甚至是,有些库或函数被去掉了,改名了 Python2和Python3,在很多基本的,最常用的函
-
Python3.6通过自带的urllib通过get或post方法请求url的实例
废话不多说,直接上代码: # coding:utf-8 from urllib import request from urllib import parse url = "http://10.1.2.151/ctower-mall-c/sys/login/login.do" data = {"id":"wdb","pwd":"wdb"} params="?" for key in da
-
对Python3中的print函数以及与python2的对比分析
本文首先介绍在python3中print函数的应用,然后对比在pyhton2中的应用.(本文作者所用版本为3.6.0) 首先我们通过help(print)命令来查看print函数的相关信息,(注意在python2中print不是函数,不能通过help获得相关信息). 第一行告诉我们print在python3中是一个内建函数. 然后是这个函数的调用格式,以及各参数的意义. 这个函数可以将values(可以是多个用逗号隔开的值)输出到一个数据流文件,默认的输出格式是标准输出(sys.stdout).
-
Python 3 判断2个字典相同
下面先给大家介绍下Python 3 判断2个字典相同的方法, Python自带的数据结构dict非常好用,之前不知道怎么比较2个字典是否相同,做法是一个一个key比较过去... 现在想到可以直接用==进行判断!!! a = dict(one=1, two=2, three=3) b = {'one': 1, 'two': 2, 'three': 3} c = dict(zip(['one', 'two', 'three'], [1, 2, 3])) d = dict([('two', 2), (
-
python爬虫中get和post方法介绍以及cookie作用
首先确定你要爬取的目标网站的表单提交方式,可以通过开发者工具看到.这里推荐使用chrome. 这里我用163邮箱为例 打开工具后再Network中,在Name选中想要了解的网站,右侧headers里的request method就是提交方式.status如果是200表示成功访问下面的有头信息,cookie是你登录之后产生的存储会话(session)信息的.第一次访问该网页需要提供用户名和密码,之后只需要在headers里提供cookie就可以登陆进去. 引入requests库,会提供get和po
-
python2与python3爬虫中get与post对比解析
python2中的urllib2改为python3中的urllib.request 四种方式对比: python2的get # coding=utf-8 import urllib import urllib2 word = urllib.urlencode({"wd":"百度"}) url = 'http://www.baidu.com/s' + '?' + word request = urllib2.Request(url) print urllib2.url
-
Python3爬虫中Ajax的用法
Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML.它不是一门编程语言,而是利用JavaScript在保证页面不被刷新.页面链接不改变的情况下与服务器交换数据并更新部分网页的技术. 对于传统的网页,如果想更新其内容,那么必须要刷新整个页面,但有了Ajax,便可以在页面不被全部刷新的情况下更新其内容.在这个过程中,页面实际上是在后台与服务器进行了数据交互,获取到数据之后,再利用JavaScript改变网页,这样网页内容就会更新了.
-
Python3爬虫中Selenium的用法详解
Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击.下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬.对于一些JavaScript动态渲染的页面来说,此种抓取方式非常有效.本节中,就让我们来感受一下它的强大之处吧. 1. 准备工作 本节以Chrome为例来讲解Selenium的用法.在开始之前,请确保已经正确安装好了Chrome浏览器并配置好了ChromeDriver.另外,还需要正确安装好Python的Selenium库,详细的安装和配置过程
-
Python3爬虫中Splash的知识总结
Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库.利用它,我们同样可以实现动态渲染页面的抓取. 1. 功能介绍 ·利用Splash,我们可以实现如下功能: ·异步方式处理多个网页渲染过程: ·获取渲染后的页面的源代码或截图: ·通过关闭图片渲染或者使用Adblock规则来加快页面渲染速度: ·可执行特定的JavaScript脚本: ·可通过Lua脚本来控制页面渲染过程: ·获取渲染的详细过程并通过HAR(
-
python3爬虫中异步协程的用法
1. 前言 在执行一些 IO 密集型任务的时候,程序常常会因为等待 IO 而阻塞.比如在网络爬虫中,如果我们使用 requests 库来进行请求的话,如果网站响应速度过慢,程序一直在等待网站响应,最后导致其爬取效率是非常非常低的. 为了解决这类问题,本文就来探讨一下 Python 中异步协程来加速的方法,此种方法对于 IO 密集型任务非常有效.如将其应用到网络爬虫中,爬取效率甚至可以成百倍地提升. 注:本文协程使用 async/await 来实现,需要 Python 3.5 及以上版本. 2.
-
Python3爬虫中关于Ajax分析方法的总结
这里还以前面的微博为例,我们知道拖动刷新的内容由Ajax加载,而且页面的URL没有变化,那么应该到哪里去查看这些Ajax请求呢? 1. 查看请求 这里还需要借助浏览器的开发者工具,下面以Chrome浏览器为例来介绍. 首先,用Chrome浏览器打开微博的链接https://m.weibo.cn/u/2830678474,随后在页面中点击鼠标右键,从弹出的快捷菜单中选择"检查"选项,此时便会弹出开发者工具,如图6-2所示: 此时在Elements选项卡中便会观察到网页的源代码,右侧便是节
-
Python3爬虫中关于中文分词的详解
原理 中文分词,即 Chinese Word Segmentation,即将一个汉字序列进行切分,得到一个个单独的词.表面上看,分词其实就是那么回事,但分词效果好不好对信息检索.实验结果还是有很大影响的,同时分词的背后其实是涉及各种各样的算法的. 中文分词与英文分词有很大的不同,对英文而言,一个单词就是一个词,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,需要人为切分.根据其特点,可以把分词算法分为四大类: ·基于规则的分词方法 ·基于统计的分词方法 ·基于语义的分词方法 ·基于理解
-
Python3爬虫中pyspider的安装步骤
pyspider是国人binux编写的强大的网络爬虫框架,它带有强大的WebUI.脚本编辑器.任务监控器.项目管理器以及结果处理器,同时支持多种数据库后端.多种消息队列,另外还支持JavaScript渲染页面的爬取,使用起来非常方便,本节介绍一下它的安装过程. 1. 相关链接 官方文档:http://docs.pyspider.org/ PyPI:https://pypi.python.org/pypi/pyspider GitHub:https://github.com/binux/pyspi
-
Python3爬虫中识别图形验证码的实例讲解
本节我们首先来尝试识别最简单的一种验证码,图形验证码,这种验证码出现的最早,现在也很常见,一般是四位字母或者数字组成的,例如中国知网的注册页面就有类似的验证码,链接为:http://my.cnki.net/elibregister/commonRegister.aspx,页面: 表单的最后一项就是图形验证码,我们必须完全输入正确图中的字符才可以完成注册. 1.本节目标 本节我们就以知网的验证码为例,讲解一下利用 OCR 技术识别此种图形验证码的方法. 2. 准备工作 识别图形验证码需要的库有 T
-
python3爬虫中引用Queue的实例讲解
我们去一个受欢迎的地方买东西,难免会需要排队等待.如果有多个窗口的话,就会有不同队列的产生,当然每个队伍的人数也会出现参差不齐的现象.我们今天所要说的Queue就可以理解成生活中的排队现象.那么结合我们所要用的爬虫知识,应该怎么在Queue中应用呢?接下来就开始今天的内容学习: 队列这种东西大家应该都知道,就是一个先进先出的数据结构,而Python的标准库中提供了一个线程安全的队列,也就是说该模块是适用于多线程编程的先进先出(first-in,first-out,FIFO)数据结构,可以用来在生
随机推荐
- 心情不好时做这25件事
- Linux 查看cpu 信息的命令及简单实例
- NTRights 命令行(DOS)修改用户权限功能详细说明
- IOS 中NSTimer定时器的使用
- 数组方法解决JS字符串连接性能问题有争议
- .net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
- C++ 基数排序的实现实例代码
- 浅析mysql 共享表空间与独享表空间以及他们之间的转化
- php简单实现多维数组排序的方法
- nodejs multer实现文件上传与下载
- JS常见问题之为什么点击弹出的i总是最后一个
- oracle通过行范围查询取4至10行
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)
- jQuery实现隔行背景色变色
- Android 游戏开发之Canvas画布的介绍及方法
- java 注解的基础详细介绍
- 使用IDEA配置Maven搭建开发框架ssm教程
- Linux使用libnet实现ARP攻击脚本原理分析以防被攻击
- c# List find()方法返回值的问题说明(返回结果为对象的指针)
- 安卓手机socket通信(服务器和客户端)