前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >URL处理----拼接和编码

URL处理----拼接和编码

作者头像
py3study
发布2020-01-19 16:47:45
1.3K0
发布2020-01-19 16:47:45
举报
文章被收录于专栏:python3python3

        ps:浪了好几周,我的锅。。。

        前几天想爬取一个用户网站自动创建每个用户的资料方便注册一些账号,想写一个通用点的爬虫程序爬取只要配置一些爬取规则、爬取深度就ok,避免代码改动,由于时间关系只完成的个半成品,后面在考虑是用xml文件作为配置文件,还是简单的使用.ini文件,后者虽然简单但局限性太大,所以,,,偷几天懒顺便重新考虑下逻辑。

==================================================================================================================================================          

        既然想通用一些,那url的一些处理必不可少,如拼接、中文编码和空格编码等问题,从网上找了下比较琐碎,所以自己简单封装了一个,主要处理了下url拼接和中文编码的问题。

运行环境:python3 、pycharm编辑器

代码如下:

代码语言:javascript
复制
 1 # -*- coding: utf-8 -*-
 2 # au: cpy
 3 # 20181016
 4 # url拼接和编码问题
 5 import re
 6 from urllib.parse import urljoin,quote
 7 
 8 
 9 def check_zh(word):
10     list_zh = re.findall('[\u4e00-\u9fa5]+',word)  # 正则匹配存在的中文
11     if list_zh:
12         for zh in list_zh:
13             word = re.sub(zh,quote(zh),word)
14             # print(word)
15     return word
16 
17 
18 def checkUrl(domain, url): # domain:域名
19     if type(url) is not str and hasattr(url, "decode"):
20         url = url.decode()
21     if not url.startswith("http"):
22         url = urljoin(domain, url)
23     url = check_zh(url)
24     return url
25 
26 if __name__ == '__main__':
27     domain = "https://www.baidu.com/"
28     # postfix_url  = "s?ie=UTF-8&wd=python3判断字符串中是否有中文"
29     url  = "s?ie=UTF-8&wd=python3判断字符串中是否有中文"
30     print(url)
31     print(checkUrl(domain, url))
32     '''
33     结果:
34     s?ie=UTF-8&wd=python3判断字符串中是否有中文
35     https://www.baidu.com/s?ie=UTF-8&wd=python3%E5%88%A4%E6%96%AD%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%AD%E6%96%87
36     '''

ps: 代码在pycharm编辑器中正常运行,其它方式运行可能会提示存在编码问题

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档