为了方便记录、收藏,一般情况下,搜索功能会采用http GET方式提供,类似的URL:
/search?keyword=测试
整个webapp统一采用UTF-8格式编码(包括页面Content-Type)
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
在获取keyword参数的时候,页面表单的提交的参数将会是预期的编码格式,但是如果是直接用“/search?keyword=测试”通过浏览器地址栏访问,浏览器将会根据系统环境(设置)对参数进行编码(windows下,FF,Opera一般为GBK;linux下,一般为UTF-8),GBK/GB2312的编码格式,在代码中将会导致一些错误,如: 字符串乱码问题、MongoDB统一使用UTF-8做为存储编码。
开始想尝试python中如何查看字符串的编码格式,但是没有找到适合的方法,现采取如下方式,对参数进行编码(针对大多数的中文用户)
def _process_keyword_coding(self, keyword):
try:
keyword = unicode(keyword, "utf-8")
except:
keyword = keyword.decode("gbk").encode("utf-8")
return keyword
页面的流程下,是可以通过utf-8编码的,否则将采取GBK方式进行解码,然后再转换成统一的UTF-8格式,(当前使用的是python 2.6, python3.0 str默认情况下将会统一采取unicode)
这里笔记下,如果有更好的方法,请大家分享
分享到:
相关推荐
urllib是Python标准库的一部分,能够完成对URL的编码、解码、发送请求以及处理响应等操作。通过使用urllib中的urlopen方法,我们可以轻松打开一个网络地址,并对返回的内容进行读取。 在具体实现时,我们首先导入...
Python Web浏览器这是一个用Python编写的简单的Web浏览器,它遵循电子书。指示从命令行运行python3 src/browser.py <url> ,其中<url>是完整的<scheme>://<host>/<path> URL,即https://example.org/index.html 。 ...
Python模拟浏览器上传文件脚本的核心知识点包括: 1. HTTP协议与Multipart/form-data格式: HTTP协议是互联网上应用最为广泛的一种网络协议,它支持客户端与服务器之间的请求/响应通信。在HTTP协议中,Multipart/...
### 使用Python的Requests库模拟浏览器发送请求数据 在Python中,`requests`库是一个非常流行的HTTP客户端库,它使得向Web服务器发送HTTP请求变得简单易行。本文将详细介绍如何使用`requests`库来模拟浏览器行为,...
总的来说,"UrlEncodeDecode解码编码工具"是一个实用的辅助工具,对于那些经常处理URL编码和解码问题的人来说,它能极大地提高工作效率,简化工作流程。无论你是开发人员、网页设计师,还是需要处理URL的任何人,这...
同时,为了实现搜索功能,需要正确处理查询参数、编码问题以及可能的API调用限制。 **5. 基本的浏览器功能** 一个基本的浏览器需要实现的功能包括:URL输入和导航、历史记录管理、书签、页面加载进度显示、页面...
在编程语言中,如JavaScript、Python、Java等,都有内置函数可以方便地对字符串进行URL编码和解码。例如,JavaScript的`encodeURIComponent()`和`decodeURIComponent()`函数,Python的`urllib.parse.quote()`和`...
1. **表单提交**:当用户在HTML表单中输入数据并提交时,浏览器会自动对非ASCII字符和特殊字符进行URL编码。 2. **查询字符串**:在URL的查询部分,如果包含空格或其他特殊字符,这些字符需要编码以防止解析错误。 3...
POST数据通常是一个字典,需要通过`urllib.urlencode()`函数转换成URL编码的字符串形式。以下是一个POST请求的例子: ```python import urllib import urllib2 HEADER = { 'User-Agent': 'Mozilla/5.0 (Windows ...
6. **URL编码与查询参数** 当URL包含查询字符串时,通常会用到编码。查询参数是以键值对形式存在的,键和值之间使用"&"分隔,而键值对内的空格需要编码为"%20"。例如,"key=value&key2=value2",如果value包含空格...
`urllib` 是 Python 的一个标准库,主要用于处理 URL 操作,比如抓取网页内容、解析 URL 和处理异常情况等。对于从事 Web 开发或者需要从互联网上抓取数据的开发者来说,`urllib` 提供了一系列强大的工具和功能。 #...
本文介绍了Python爬虫的基础知识,并通过具体的示例代码展示了如何处理常见的网络爬虫问题,包括异常处理、编码问题、防爬策略应对以及实现百度关键词搜索等。通过这些实践,初学者可以更好地理解和掌握Python爬虫的...
在Python编程中,`webbrowser`模块提供了一个接口,能够帮助开发者轻松地在用户的系统上启动默认的Web...这不仅对于个人项目和自动化脚本非常有用,也为Python初学者提供了一个了解Web交互和URL编码的良好实践案例。
Python的requests库是实现这一功能的常用库,它可以方便地发送GET或POST请求,处理cookies、headers等信息,与服务器进行交互。 描述中提到的“可以爬取百度百科若干个页面”,这表明爬虫的实现可能包括对百度百科...
6. **国际化的URL和POST数据编码**:requests库支持Unicode URL和POST数据,自动进行适当的编码转换,避免编码问题。 总的来说,requests模块在Python3中是一个不可或缺的工具,无论是进行简单的网页抓取,还是复杂...
此外,一些开发工具,如IDE或HTTP客户端,可能提供了自动处理URL编码的功能,帮助开发者更方便地处理包含中文文件名的URL。 至于“Response中Header妙用.doc”,这个文件名可能暗示了文档内容会介绍如何巧妙利用...
在基础版中,作者提到了urllib库的urlencode函数,它是urllib库中的一个用于处理URL编码的工具,可以将字典或字符串转化为URL编码格式。此外,requests库是Python中最常用、最强大的HTTP库之一,能够发送各种HTTP...
例如,使用`requests.get()`方法可以获取指定URL的网页内容,同时设置headers参数以模拟浏览器行为,避免被网站识别为机器人。在处理中文编码问题时,可能需要设置`res.encoding`为正确的字符编码,如`utf-8`。 ...
- **urlparse()**:该函数用于解析URL,将URL分解为协议、域名、路径、参数、查询条件等部分,便于进一步处理。 - **urljoin()**:合并URL,尤其在处理相对URL时非常有用。 - **urlencode()**:将字典类型的参数...
2. **发送请求**:使用`requests.get()`方法获取网页HTML内容,可能包含对URL编码、携带Cookies等操作。 3. **解析HTML**:通过`BeautifulSoup`解析HTML,找到目标数据所在的标签和属性,例如使用CSS选择器或XPath...