python2与python3爬虫get与post对比

Posted kolane

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python2与python3爬虫get与post对比相关的知识,希望对你有一定的参考价值。

  1. python2中的urllib2改为python3中的urllib.request

  2. 四种方式对比:

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'))

以上是关于python2与python3爬虫get与post对比的主要内容,如果未能解决你的问题,请参考以下文章

简单的 get/post 请求在 python 3 中被阻止,但在 python 2 中没有

python爬虫学习

Python爬虫基础urllib2库的get与post方法

Python爬虫入门之四urllib-GET与POST请求

python2与python3能共存吗

python爬虫之requests库