page contents

解析URL(Golang+Python)

URL格式: 在互联网中,任何一个可访问的文件或文档都具有一个唯一的地址,这种地址称为统一资源定位符(Uniform Resource Locator,简称URL),其格式如下: scheme://host[:port][path][:par...

attachments-2021-07-4uItyQWz60e905035f710.png

URL格式:

在互联网中,任何一个可访问的文件或文档都具有一个唯一的地址,这种地址称为统一资源定位符(Uniform Resource Locator,简称URL),其格式如下:

scheme://host[:port][path][:parameters][?query]#fragment
  1. scheme(协议):包括http、https、ftp 以及 file。
  2. hostname(主机名):可以是主机名、域名、服务器IP。例如百度的域名:www.baidu.com
  3. port(端口号):省略端口号时,为各个协议的默认端口号,例如:http的默认端口号为80,mysql的默认端口号是3306,ftp的默认端口号为21。
  4. path(路径):由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
  5. parameters/query(参数):询搜索的部分,需要向服务器传入参数,就在这输入。通过问号?连接到path后面,从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。一般来说,参数都是键值一一对应着,名和值用等号=隔开,参数可以有多个,参数之间用“&”分隔。username=root&password=xxxxxxxxxxxxxx
  6. fragment(单页面路由): 对于HTML 文档来说就是页面内的定位标识符,可以实现 HTML 页面内的定位,如下图所示:

attachments-2021-07-tL17M3OK60e904eba3a35.png

Golang解析URL

func AnalyseUrl() {
webUrl := "https://user:pass@localhost:8000/update?item=socks&price=16#latest"
u,err:=url.Parse(webUrl)
if err!=nil{
fmt.Println("error is:",err.Error())
return
}

fmt.Println("scheme:",u.Scheme)
fmt.Println("username:",u.User.Username())
password,_ :=u.User.Password()
fmt.Println("password:",password)
fmt.Println("host:",u.Hostname())
fmt.Println("port:",u.Port())
fmt.Println("path:",u.Path)
fmt.Println("query:",u.Query())
fmt.Println("fragment:",u.Fragment)
item:=u.Query().Get("item") // 获取item
fmt.Println("item:",item)
}

Python解析URL

from urllib.parse import urlparse,parse_qs
web_url = "https://user:pass@localhost:8000/update?item=socks&price=16#latest"
result = urlparse(web_url)
print('scheme:',result.scheme)
print('host:',result.username)
print('port:',result.password)
print('host:',result.hostname)
print('port:',result.port)
print('path:',result.path)
print('query:',result.query)
print('params:',result.params)
print('fragment:',result.fragment)
item = parse_qs(result.query).get('item') #  获取item,得到的是一个列表,也可以用parse_qsl
print('item:',item)

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

程序员编程交流QQ群:805358732

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-xliA7KRm62ad397d8a6ed.jpeg

  • 发表于 2021-07-10 10:26
  • 阅读 ( 437 )
  • 分类:Golang

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1324 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章