python通过urllib2获取带有中文参数url内容的方法

要通过urllib2库获取带有中文参数的url内容,需要注意以下几点:

  1. 中文参数需要转码为url能够识别的utf-8格式。
  2. urllib2库默认使用的User-Agent为Python-urllib/2.7,容易被服务器拦截,建议修改为浏览器的User-Agent。
  3. 使用Request对象传递参数和Header。

下面给出两个示例来说明:

示例1:获取有道翻译的结果

# -*- coding: utf-8 -*-
import urllib
import urllib2

def youdao_translate(q):
    # 构造url
    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    data = {'type': 'AUTO', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTIME',
            'typoResult': 'false'}
    data['i'] = q.encode('utf-8')

    # 修改User-Agent
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0'}

    # 构造Request对象
    req = urllib2.Request(url=url, data=urllib.urlencode(data), headers=headers)

    response = urllib2.urlopen(req)
    result = response.read()
    print result


if __name__ == '__main__':
    youdao_translate(u'中文')

上述代码中,我们构造了url,并将中文参数转换成了utf-8格式,将修改过的User-Agent放入headers中,最后构造出了Request对象并传入urllib2.urlopen()中获取结果。

示例2:在知乎中搜索Python相关内容

# -*- coding: utf-8 -*-
import urllib
import urllib2

def search(keyword):
    # 构造url
    url = 'https://www.zhihu.com/search?type=content&q='
    query = keyword.encode('utf-8')
    url += urllib.quote(query)

    # 修改User-Agent
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0'}

    # 构造Request对象
    req = urllib2.Request(url=url, headers=headers)

    response = urllib2.urlopen(req)
    result = response.read()
    print result


if __name__ == '__main__':
    search(u'Python')

上述代码中,我们先构造出搜索Python相关内容的url,将中文参数进行url编码,将修改过的User-Agent放入headers中,最后构造出了Request对象并传入urllib2.urlopen()中获取结果。

从上述两个示例可以看出,获取带有中文参数的url内容的方法就是将中文参数转码为utf-8格式,修改User-Agent,构造Request对象并传递参数和Header。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python通过urllib2获取带有中文参数url内容的方法 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • Python实践之使用Pandas进行数据分析

    Python实践之使用Pandas进行数据分析 Pandas是一个用于数据操作和分析的Python库,它可以对多种数据格式进行读取和处理,比如CSV、Excel、数据库、JSON等格式,同时也提供了丰富的数据处理和分析方法。在本文中,我们将介绍如何使用Pandas进行数据分析的完整攻略。 安装Pandas 首先,我们需要安装Pandas库,可以通过pip命令…

    python 2023年6月3日
    00
  • python 图像平移和旋转的实例

    下面是关于python图像平移和旋转的实例攻略。希望这份攻略能够对您有所帮助。 1. 简介 在计算机视觉中,图像平移和旋转是常用的图像变换操作。在处理图像或视频中,我们通常需要对图像进行平移和旋转操作来实现目标检测、目标跟踪、图像匹配等任务。本文将介绍python中如何进行图像平移和旋转操作。 2. 图像平移 2.1 图像平移原理 图像平移是指把图像沿着水平…

    python 2023年6月3日
    00
  • Python中的嵌套循环详情

    下面是针对“Python中的嵌套循环详情”的完整攻略: 什么是嵌套循环? 在Python中,如果我们需要对一个数据集中的每一个元素都执行某个操作,可以使用for循环来完成。而如果这个数据集中每个元素又是一个数据集,那就需要使用嵌套循环来完成双重迭代的任务。 嵌套循环简单来说就是在一个循环内部再嵌套其他的循环。在每次外部循环执行时,内部循环都会执行一轮,直到内…

    python 2023年6月5日
    00
  • python mysql中in参数化说明

    当我们使用Python中的MySQL数据库操作时,有时需要传入多个参数,此时我们可以使用in语句来替代多个And或Or语句,提高代码的可读性。但如果使用字符串拼接的方式传参会增加SQL注入的风险,因此需要使用参数化查询。 下面就是一个Python MySQL中in参数化的完整攻略。 准备工作 首先需要安装Python中的MySQL库,可以使用命令pip in…

    python 2023年5月13日
    00
  • python实现的爬取电影下载链接功能示例

    Python实现的爬取电影下载链接功能示例 在本教程中,我们将介绍如何使用Python实现爬取电影下载链接的功能。我们将使用Python的requests和BeautifulSoup库来实现这个功能。以下是一个示例代码,演示如何使用Python实现爬取电影下载链接的功能: import requests from bs4 import BeautifulSo…

    python 2023年5月15日
    00
  • 详解Python中的循环语句的用法

    以下是“详解Python中的循环语句的用法”的完整攻略。 1. 循环语句的概述 在Python中,循环语句是一种常用的控制流语句,它可以让程序重复执行某些代码块。Python中的循环语句有for循环和while循环两种。本攻略将详细讲解Python中的循环语句的用法。 2. for循环的用法 for循环是Python中常用的循环语句,它可以遍历序列中的每个元…

    python 2023年5月13日
    00
  • python实现一个简单的ping工具方法

    当我们需要测试网络连通性时,通常可以使用ping命令来测试。但有时我们需要在python程序中实现ping命令的功能。下面是一个简单的实现方法。 使用第三方库ping3 在Python中,有一个名为ping3的第三方库,可以用于模拟ping命令的功能。使用该库的示例如下: import ping3 response_time = ping3.ping(‘ww…

    python 2023年5月19日
    00
  • Python中字典的缓存池

    Python中字典的缓存池 什么是缓存池? 在Python语言中,为了节省内存和提升性能,会使用缓存池技术。缓存池是一种将常用的对象进行缓存保存的机制,这样可以减少对象的创建和销毁,提升性能和节省内存。 Python中的字典 在Python中,字典(dict)是一种非常常见的数据类型,它是一种键值对映射的集合。 当我们创建一个字典时,Python解释器会在内…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部