返回顶部
首页 > 资讯 > 后端开发 > Python >python爬虫之url中的中文问题
  • 833
分享到

python爬虫之url中的中文问题

爬虫中文python 2023-01-31 06:01:32 833人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

在python的爬虫学习中,我们的url经常出现中文的问题,我们想要访问的url就需要对url进行拼接,变成浏览器可以识别的url在Python中已经有了这样的模块了,这就是urlencodeurlencode需要对中文和关键字组成一对字典

python爬虫学习中,我们的url经常出现中文的问题,
我们想要访问的url就需要对url进行拼接,变成浏览器可以识别的url
Python中已经有了这样的模块了,这就是urlencode
urlencode需要对中文和关键字组成一对字典,然后解析成我们的url

在python2中是
urllib.urlencode(keyWord)
在Python中是
urllib.parse.urlencode(keyword)

查看一下代码:
python2

import urllib
import  urllib2

#例如我们需要在百度上输入个关键字哈士奇进行查询,但是哈士奇是中文的,我们需要对哈士奇进行编码
keyword = {"wd":"哈士奇"}

head_url = "Http://www.baidu.com/s"

headers = {
    "User-Agent":"Mozilla/5.0 (windows NT 10.0; WOW64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}

wd = urllib.urlencode(keyword)
url = head_url +"?"+ wd

req = urllib2.Request(url,headers=headers)

response = urllib2.urlopen(req)
html = response.read()
print(url)
print(html.count('哈士奇'))

结果如下:
python爬虫之url中的中文问题

python3中:

# -*- coding: utf-8 -*-
# File  : url中出现的中文问题.py
# Author: HuXianyong
# Date  : 2018-09-13 17:39
from urllib import request
import urllib

#例如我们需要在百度上输入个关键字哈士奇进行查询,但是哈士奇是中文的,我们需要对哈士奇进行编码
keyword = {"wd":"哈士奇"}

head_url = "http://www.baidu.com/s"

headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}

wd = urllib.parse.urlencode(keyword)
url = head_url +"?"+ wd

req = request.Request(url,headers=headers)

response = request.urlopen(req)
html = response.read()

print(html.decode().count("哈士奇"))

print(url)

结果如下:
python爬虫之url中的中文问题

如果需要吧转换的字符变成中文
可以用unquota

如下:
python2
python爬虫之url中的中文问题

In [25]: dic = {"say":"你好!"}

In [26]: urllib.urlencode(dic)
Out[26]: 'say=%E4%BD%A0%E5%A5%BD%21'

In [27]: aa  = urllib.urlencode(dic)

In [28]: aa
Out[28]: 'say=%E4%BD%A0%E5%A5%BD%21'

In [29]: bb = urllib.unquote(aa)

In [30]: bb
Out[30]: 'say=\xe4\xbd\xa0\xe5\xa5\xbd!'

In [31]: print(bb)
say=你好!

python3
python爬虫之url中的中文问题

In [16]: dic = {"say":"你好!"}

In [17]: aa = urllib.parse.urlencode(dic)

In [18]: aa
Out[18]: 'say=%E4%BD%A0%E5%A5%BD%21'

In [19]: bb = urllib.parse.unquote(aa)

In [20]: bb
Out[20]: 'say=你好!'

但是如果我们的是post请求数据需要加在data里面这样就还需要对data做处理,不然会报字符串的错:

TypeError: POST data should be bytes or an iterable of bytes. It cannot be of type str.

这样的解决方法是需要加上个编码
data = urllib.parse.urlencode(fORMData).encode(encoding="UTF8")
python爬虫之url中的中文问题

代码如下:

# -*- coding: utf-8 -*-
# File  : ajax爬取豆瓣电影列表.py
# Author: HuXianyong
# Date  : 2018-09-14 14:35

import urllib
from urllib import request

url = "https://movie.douban.com/j/new_search_subjects?"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}

formData = {
    "sort": "S",
    "range": "0,10",
    "tags": "电影,魔幻",
    "start": "0",
    "genres": "剧情"
}

data = urllib.parse.urlencode(formData).encode(encoding="UTF8")

req = request.Request(url=url,data=data,headers=headers)

response = request.urlopen(req)
move_info = response.read().decode()
print(response.read().decode())

--结束END--

本文标题: python爬虫之url中的中文问题

本文链接: https://lsjlt.com/news/189707.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python爬虫之url中的中文问题
    在python的爬虫学习中,我们的url经常出现中文的问题,我们想要访问的url就需要对url进行拼接,变成浏览器可以识别的url在python中已经有了这样的模块了,这就是urlencodeurlencode需要对中文和关键字组成一对字典...
    99+
    2023-01-31
    爬虫 中文 python
  • python爬虫之 URL的一般格式
    URL的一般格式(带方括号[]的为可选项)protocol://hostname[:port]/path/[;parameters][query]#fragmentprotocol 为协议:http,https,ftp,file,ed2kh...
    99+
    2023-01-30
    爬虫 格式 python
  • Python爬虫如何爬取网页中所有的url
    这篇文章主要介绍Python爬虫如何爬取网页中所有的url,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂...
    99+
    2023-06-14
  • 【爬虫 | Python】解决‘Requests Max Retries Exceeded With Url‘报错的问题
    【爬虫 | Python】解决'Requests Max Retries Exceeded With Url in Python'报错的问题 背景解决方案一、普遍方案细致方案一、问题重述1.错...
    99+
    2023-09-06
    python 爬虫 开发语言
  • Python爬虫问题有哪些
    本篇内容主要讲解“Python爬虫问题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫问题有哪些”吧! 现在爬虫好找工作吗?如果是一年前我可能会说爬虫的工作还是挺好找的,但现...
    99+
    2023-06-02
  • 如何在Python中处理网络爬虫的问题
    如何在Python中处理网络爬虫的问题网络爬虫是获取互联网上信息的重要方式,而Python作为一种简单易用且功能强大的编程语言,被广泛用于网络爬虫开发。本文将介绍如何在Python中处理网络爬虫的问题,并提供具体的代码示例。一、网络爬虫的基...
    99+
    2023-10-22
    Python 网络爬虫 处理问题
  • Python爬虫之爬取某文库文档数据
    目录一、基本开发环境二、相关模块的使用三、目标网页分析四、整体思路五、爬虫代码实现六、写入文档一、基本开发环境 Python 3.6 Pycharm 二、相关模块的使用 impo...
    99+
    2024-04-02
  • Python中爬虫编程的常见问题及解决方案
    Python中爬虫编程的常见问题及解决方案引言:随着互联网的发展,网络数据的重要性日益突出。爬虫编程成为大数据分析、网络安全等领域中必备的技能。然而,爬虫编程不仅需要良好的编程基础,还需要面对着各种常见的问题。本文将介绍Python中爬虫编...
    99+
    2023-10-22
    解决方案 常见问题 关键词:爬虫编程
  • Python中常见的网络爬虫问题及解决方案
    Python中常见的网络爬虫问题及解决方案概述:随着互联网的发展,网络爬虫已经成为数据采集和信息分析的重要工具。而Python作为一种简单易用且功能强大的编程语言,被广泛应用于网络爬虫的开发。然而,在实际开发过程中,我们常会遇到一些问题。本...
    99+
    2023-10-22
    解决方案: 反爬虫机制 网络爬虫问题: IP封锁 动态网页渲染
  • Python爬虫框架之Scrapy中Spider的用法
    Scrapy中Spider的用法 Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。换句话说,Spider就是您定义爬取的动作...
    99+
    2022-06-02
    Spider的用法 Python Scrapy框架
  • 【Python3爬虫】用Python中的
    当你看着你的博客的阅读量慢慢增加的时候,内心不禁有了些小激动,但是不得不吐槽一下--博客园并不会显示你的博客的总阅读量是多少。而这一篇博客就将教你怎么利用队列这种结构来编写爬虫,最终获取你的博客的总阅读量。   队列是常用数据结构之一...
    99+
    2023-01-30
    爬虫 Python
  • Python爬虫之在MySQL中存储数据
    MySQL是一个开源的关系型数据库管理系统,被广泛应用于网站开发中的数据存储。在爬虫中,数据的存储是非常重要的一环。下面我们先简单介绍MySQL的基本知识,再讲一下在Python爬虫中如何使用MySQL进行数据存储。 MySQL基本概念 数...
    99+
    2023-10-09
    数据库 mysql python
  • nodejs爬虫抓取数据之编码问题
    cheerio DOM化并解析的时候 1.假如使用了 .text()方法,则一般不会有html实体编码的问题出现 2.如果使用了 .html()方法,则很多情况下(多数是非英文的时候)都会出现,这时,可能就...
    99+
    2022-06-04
    爬虫 数据 nodejs
  • Python爬虫之Requests库的基
    1 import requests 2 response = requests.get('http://www.baidu.com/') 3 print(type(response)) 4 print(response....
    99+
    2023-01-30
    爬虫 Python Requests
  • Python解决爬虫程序卡死问题
    目录前言:简单粗暴解决问题增加一点点难度的解决方案我们继续给爬虫程序加点料尾声前言: 之前的文章我们已经开启了爬虫程序的exe之旅,但是我们最终实现的程序存在一个非常大的问题,当进行...
    99+
    2024-04-02
  • Python爬虫基础之爬虫的分类知识总结
    目录一、通用爬虫二、搜索引擎的局限性三、Robots协议四、请求与相应一、通用爬虫 通用网络爬虫是搜索引擎抓取系统(Baidu、Google、Sogou等)的一个重要组成部分。主要目...
    99+
    2024-04-02
  • 运维学python之爬虫中级篇(九)Py
    最近因为年底,连续两个项目要投产上线,又赶上公司年会,忙的要死,更新有些慢,见谅。今天要说一说python如何对mysql进行操作。在 Python3.x 版本中用于连接 MySQL 服务器的库与Python2中使用的mysqldb有所不同...
    99+
    2023-01-31
    爬虫 运维学 python
  • 运维学python之爬虫中级篇(七)Sq
    前文已经讲过无数据库版本操作(csv,json),今天我们要开始讲有数据库版本的操作,首先就是sqlite3。 SQLite是一个C库,它提供了一个轻量级的基于磁盘的数据库,它不需要单独的服务器进程,并且允许使用SQL查询语言的非标准格式...
    99+
    2023-01-31
    爬虫 运维学 python
  • python爬虫中分布式爬虫的作用是什么
    这篇文章给大家分享的是有关python爬虫中分布式爬虫的作用是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。随着大数据时代的来临,大数据也吸引了越来越多的关注。网络爬虫是一种高效的信息抓取工具,它集成了搜索引...
    99+
    2023-06-15
  • 详解nodejs爬虫程序解决gbk等中文编码问题
    使用nodejs写了一个爬虫的demo,目的是提取网页的title部分。 遇到最大的问题就是网页的编码与nodejs默认编码不一致造成的乱码问题。nodejs支持utf8, ucs2, ascii, b...
    99+
    2022-06-04
    爬虫 中文 详解
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作