精华内容
下载资源
问答
  • 解析url地址

    2018-08-16 09:12:41
    URL进行加密和解析;使用jquery对url(http://xxx.com/%sdadsa$#)进行解析
  • HTTP url解析

    2018-11-30 14:27:43
    http的url参数解析,包括编解码等功能
  • NULL 博文链接:https://wulinhaoxia5.iteye.com/blog/1567999
  • Google 地图切片URL地址解析

    千次阅读 2019-03-14 15:45:03
    由图片左侧的url地址可见,只要正确解析地址中的四个参数(x , y , z , s)就可以获取到地图瓦片了。 下面是本人的分析思路: 1.四个参数的含义(x、y、z、s): x , y 是瓦片坐标系的坐标值,z代表缩放...

    一、Google地图切片的投影方式及瓦片索引机制

    1.地图投影

    Google地图采用的是Web墨卡托投影(如下图),为了方便忽略了两极变形较大的地区,把世界地图做成了一个边长等于赤道周长的正方形(赤道长度为6378137米),原点在正方形中心,即经纬度为(0,0)处。Web墨卡托投影的X,Y坐标取值范围为:[-20037508.3427892,20037508.3427892],对应的经度取值范围为[-180,180],对应的纬度范围则为[-85.05112877980659,85.05112877980659]。具体投影解释请参考墨卡托投影

    2.瓦片索引机制

    Google 地图的索引机制是 TMS(Tile Map Service) 规范的一个变种,其地图瓦片如下图进行索引:

     Google 瓦片坐标系:把地球投影后形成的正方形划分为2 的 level(缩放级别) 次幂个地图瓦片,原点在左上角,类似于像素坐标系;详细解释参见Google Maps API 文档

          

    TMS瓦片坐标系:TMS与Google的地图瓦片切割方法相同,不同的是TMS的原点在左下角。

    转换关系:TMS 与Google 坐标系的X 、Z是相等的,Y 的转换关系为:Y(TMS) +  Y(Google) = Math.pow(2,zoom) - 1

    注:关于投影和瓦片索引机制强烈推荐阅读:Tiles à la Google Maps: Coordinates, Tile Bounds and Projection,文中详细分析了地图瓦片涉及各类坐标的转换关系及具体算法,包括瓦片坐标(Google、TMS、Bing QuadTree)、像素坐标、WGS84 经纬度、Mercator 投影平面坐标等。

    3.地图缩放级别的分辨率与地图比例尺的关系

    地图缩放级别的分辨率(Resolution),是指某缩放级别每个像素代表的实际距离;

    地图比例尺(Scale),是指某缩放级别图上一米代表的实际距离;

    默认使用屏幕分辨率为96  
    算法:  
    dpi=96,即表示每英寸96像素,1英寸=2.54厘米。  
    比例尺与分辨率的关系:Scale=Resolution×每米的像素个数,  
    即有Scale = Resolution×(96*100)/2.54  
    则Resolution = Scale*2.54/(96*100)  

    二、Google地图瓦片地址解析

    1.使用Google Chrome 打开Google地图界面,按F12打开  开发人员工具,如下图:

    由图片左侧的url地址可见,只要正确解析地址中的四个参数(x , y , z , s)就可以获取到地图瓦片了。

    下面是本人的分析思路:

    1.四个参数的含义(x、y、z、s):

    x , y 是瓦片坐标系的坐标值,z代表缩放级别,s则共有八个字符:空字符和Galileo的七个字符。

    x , y 的值在 z 增加时会按级数递增,而s 的值很可能是 x , y , z 三个参数组合后的从 0 到 7 的一个索引值。

    x , y , z 组合后与 8 求余即可得到 s 的值。 

    2.四个参数的关系:

    • 当 x = 0 时,y 增 1 时,s会同时增 1,与 z 值无关。
    • 当 y = 0 时,x 增 1 时,s会同时增3 ,与 z 值无关。
    • 从上面两条可以得出,x , y 很可能以 3*x + y 的方式组合,然后与 8 求余即得 s。

    推测公式为:( 3*x + y )%8 = s 

    3.验证

    随即抽取几个地址,取其中的 x , y , s代入第二步中的推测公式验证,果然如此。之后怎么折腾这些瓦片地址就看你了。影像地图只是前缀不一样而已。看来以后不用再为找合适的 Google 地图下载器折腾了,你懂的!

    4.其它几个参数的含义

    1) Google 地图使用了四个服务地址,即 http://mt ( 0—3).google.cn/......,都是可以用滴。

    地图:http://mt2.google.cn/vt/lyrs=m@177000000&hl=zh-CN&gl=cn&src=app&。。。

    影像底图:http://mt3.google.cn/vt/lyrs=s@110&hl=zh-CN&gl=cn&src=app&。。。

    影像的叠加层:http://mt1.google.cn/vt/imgtp=png32&lyrs=h@177000000&hl=zh-CN&gl=cn&src=app&。。。

    2) url地址中的 lyrs 表示的是图层类型,即瓦片类型,具体含义如下:

    地图瓦片类型验证,直接修改lyrs参数的值即可:http://mt2.google.cn/vt/lyrs=y@258000000&hl=zh-CN&gl=CN&src=app&x=214130&y=114212&z=18&s=Ga

    m:路线图  
    t:地形图  
    p:带标签的地形图  
    s:卫星图  
    y:带标签的卫星图  
    h:标签层(路名、地名等)  

    3) 暂时未发现 "&s=..." 的意义,url有无此后缀都不影响瓦片地址的访问。

     

    扩展阅读:

    1.墨卡托投影经纬度与平面坐标转换公式

    后记:此文只是提供了一种方法,google 地图切片地址的算法及前缀都可能会不断调整。

    三、GMap.NET 

    GMap.NET - Great Maps for Windows Forms & Presentation

     

    一个非常强大的开源地图项目(winform版),对于解析Google等地图服务的算法相当不错。

    GMap.NET is great and Powerful, Free, cross platform, open source .NET control. 

    Enable use routing, geocoding, directions and maps from Coogle, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac, Yandex, Mapy.cz, Maps.lt, iKarte.lv, NearMap, OviMap, CloudMade, WikiMapia in Windows Forms & Presentation, supports caching and runs on windows mobile!

     

    原文链接:Google 地图切片URL地址解析

    展开全文
  • 本文实例讲述了Python实现从URL地址提取文件名的方法。分享给大家供大家参考。具体分析如下: 如:地址为 //www.jb51.net/images/logo.gif 要想从该地址提取logo.gif,只需要一句代码就可以搞定 import os url = '/...
  • 主要介绍了php解析字符串里所有URL地址的方法,涉及php操作数组、字符串及URL的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 自从9月后百度和360开战的结果就是 百度搜索结果的网址改变了,变成link?url=………这样的重定向格式了。看到这样的不友好的URL真有破解的冲动。于是今天开始试试破解它
  • jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
  • 【Jsoup】URL地址解析

    千次阅读 2017-07-03 11:09:07
    1.问题:怎么样解析URL地址?2.源代码:package com.fxrj.email.test;import com.platform.common.constants.OtherSystemBingdingUrl; import com.platform.common.exception.HttpConnectException; import ...

    1.问题:

    怎么样解析URL地址?

    2.源代码:

    package com.fxrj.email.test;
    
    import com.platform.common.constants.OtherSystemBingdingUrl;
    import com.platform.common.exception.HttpConnectException;
    import com.platform.http.RequestContext;
    import org.jsoup.Connection;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    
    import java.io.IOException;
    import java.util.Map;
    
    /**
     * Created by Administrator on 2017/6/28 0028.
     * 测试链接;
     */
    public class TestConnectionDemo{
        public static void main(String[] args) {
            RequestContext requestContext=new RequestContext();
    //1、创建请求上下文;请求上下文就是写你需要知道的东西,类似考卷;而与之对应的是response,就是响应,回答,针对你的问题,给出你的回答;(这两个单词容易看混,别看错了)
            try{
    //1.1根据mobileNumber来得到userid和domain;//注意这里有两个不规范的地方,即,没有驼峰命名法和匈牙利命名法;
                String mobileNumber="abc@google.com.cn";//这里是账号信息;
                String str[]=mobileNumber.split("@");
                String userid=str[0];//abc
                String domain=str[1];//google.com.cn
    //2、建立连接,准备好接受响应(答案)的容器,一个名为response的实体;
    //2.1这里使用Jsoup来建立连接,Jsoup是一个简单方便的解析器;需要传入登录地址;
    //2.2需要data()方法添加访问的用户名,密码,登录方式,返回地址,版本信息,域名,验证码等
    //2.3执行方法method()方法,是GET,POST,PUT,DELETE,PATCH,HEADER,OPTION,TRACE中的哪种方法;
    //2.4执行execute()方法;
    Connection.Response response= Jsoup.connect(OtherSystemBingdingUrl.LOGIN_URL)
                        .data("password","123456")
                        .data("validateCode","")
                        .data("returnurl","http://google.login.login.do")
                        .data("loginType","WEB")
                        .data("version","version")
                        .data("passwordType","0")
                        .data("mobileNumber",mobileNumber)
                        .data("userid",str[0])
                        .data("domain",str[1])
                        .method(Connection.Method.POST)
                        .execute();
    //3、添加cookies注意,cookies是Map格式的键值对,response拿到cookies;
                Map<String,String> cookies=response.cookies();
                System.out.println("cookies:"+cookies);
    
    //4、从response拿到url地址,拿到需要的sid和r参数,这里要使用response下面url的getQuery方法:
    String url = response.url().getQuery();//
    System.out.println("URL:"+response.url());//URL:http:/abc@google.com.cn/m.do?sid=6Q18C7MRnQKz4Nt00001&r=46ad37852cc
                System.out.println("urlQuery:"+url);//sid=6Q18C7MRnQKz4Nt00001&r=46ad37852cc
    
                String url2[]=url.split("&");
                requestContext.globalData("sid",url2[0]);sid=6Q18C7MRnQKz4Nt00001
                requestContext.globalData("r",url2[1]);//r=46ad37852cc
                System.out.println(url2[0]);
                System.out.println(url2[1]);
            }catch (IOException e){
                throw new HttpConnectException(e.getCause());
            }
        }
    }
    

    这里,Connection有好多方法,以下是源码中的方法;

    Connection url(URL var1);
        Connection url(String var1);//获取url(String)
    
        Connection proxy(Proxy var1);//代理服务器,即Proxy服务器,在互联网上的完成跑腿服务。当你在浏览器中设置了某个Proxy服务器之后,由你的浏览器所发出的任何要求,都会被送到Proxy服务器上去,由这台Proxy服务器代为处理。
    
        Connection proxy(String var1, int var2);
    
        Connection userAgent(String var1);//用户代理
    
        Connection timeout(int var1);//设置超时时间上限
    
        Connection maxBodySize(int var1);//最大Body大小;
    
        Connection referrer(String var1);//引荐
    
        Connection followRedirects(boolean var1);//跟随重定向
    
        Connection method(Connection.Method var1);参数传递方法(GET,POST,PUT,DELETE,PATCH打补丁
    ,HEAD,OPTION,TRACE等)
    
        Connection ignoreHttpErrors(boolean var1);//忽略Http错误(Boolean)
    
        Connection ignoreContentType(boolean var1);//忽略内容
    
        Connection validateTLSCertificates(boolean var1);//验证TLS证书
    
        Connection data(String var1, String var2);//data数据
    
        Connection data(String var1, String var2, InputStream var3);
    
        Connection data(Collection<Connection.KeyVal> var1);
    
        Connection data(Map<String, String> var1);
    
        Connection data(String... var1);
    
        Connection.KeyVal data(String var1);//key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。
    
        Connection requestBody(String var1);//请求体
    
        Connection header(String var1, String var2);//header头部,页眉;
    
        Connection headers(Map<String, String> var1);
    
        Connection cookie(String var1, String var2);//cookie,Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密),俗称,本地用户身份信息缓存;
    
        Connection cookies(Map<String, String> var1);
    
        Connection parser(Parser var1);//解析器
    
        Connection postDataCharset(String var1);//请求数据字符集,tips:Jsoup只能以默认编码方式(UTF-8)提交参数
    
        Document get() throws IOException;//页面文档获取,获取页面的信息,以Document形式获取;
    
        Document post() throws IOException;//发送文档信息;
    
        Connection.Response execute() throws IOException;//响应执行。添加完参数后,让其开始连接;
    
        Connection.Request request();
    
        Connection request(Connection.Request var1);
    
        Connection.Response response();
    
        Connection response(Connection.Response var1);

    这里还枚举了Connection中的一些Method:

        public static enum Method {
            GET(false),
            POST(true),
            PUT(true),
            DELETE(false),
            PATCH(true),
            HEAD(false),
            OPTIONS(false),
            TRACE(false);
    
            private final boolean hasBody;
    
            private Method(boolean hasBody) {
                this.hasBody = hasBody;
            }
    
            public final boolean hasBody() {
                return this.hasBody;
            }
        }

    3.截图:

    4.总结:

    这里面的参数,网址是编的;

    展开全文
  • 主要介绍了C# 如何解析获取Url参数值,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
  • php结合java解析二维码图片里的URL地址,在PHP和Java环境下可用。先运行jar包,然后用php源码即可!
  • 解析字符串形式的url地址

    千次阅读 2017-12-04 11:05:03
    解析字符串形式的url地址假设给定的url形字符串为: var url = 'https://www.baidu.com:8080/aaa/1.html?id=10#name';用a链接的形式var aLink = window.document.createElement('a'); aLink.href = url; console.log...

    解析字符串形式的url地址


    假设给定的url形字符串为:

     var url = 'https://www.baidu.com:8080/aaa/1.html?id=10#name';

    用a链接的形式

    var aLink = window.document.createElement('a');
    aLink.href = url;
    console.log(aLink);
    console.log(aLink.search);
    console.log(aLink.hash);
    ...
     protocol: https  //协议
     host: www.baidu.com:8080 //主机
     hostname: www.baidu.com  //主机名
     port: 8080 //端口号
     pathname: /aaa/1.html  //路径名
     search: ?id=10  //参数
     hash: #name  //锚点
    展开全文
  • Nodejs之地址解析模块URL

    千次阅读 2017-03-03 10:48:30
    url结构化/模块化/路径解析结构化:url.parse(urlString[, parseQueryString[, slashesDenoteHost]]) 模块化:url.format(urlObject) 路径解析url.resolve(from, to)一个URL字符串是一个结构化的字符串包含多个...

    这里写图片描述


    url结构化/模块化/路径解析

    结构化:url.parse(urlString[, parseQueryString[, slashesDenoteHost]])
    模块化:url.format(urlObject)
    路径解析:url.resolve(from, to)

    一个URL字符串是一个结构化的字符串包含多个有意义的组件。在解析时,返回一个URL对象包含每一个组件的属性。

    官方手册上面的一张图是这样子的:
    这里写图片描述
    这张图解释了一个url结构化成哪些部分,哪些部分又包含哪些部分

    protocol: 请求协议

    host: URL主机名已全部转换成小写, 包括端口信息

    auth:URL中身份验证信息部分

    hostname:主机的主机名部分, 已转换成小写

    port: 主机的端口号部分

    pathname: URL的路径部分,位于主机名之后请求查询之前

    search: URL 的“查询字符串”部分,包括开头的问号。

    path: pathname 和 search 连在一起。

    query: 查询字符串中的参数部分(问号后面部分字符串),或者使用 querystring.parse() 解析后返回的对象。

      hash: URL 的 “#” 后面部分(包括 # 符号)

    url结构化

    将一个url地址结构化成为拥有上图属性的url对象。url.parse第二个和第三个参数默认为false。

    • 第二个参数决定query属性值是字符串还是对象
    • 第三个参数如果为true,//后的第一个令牌文字字符串和下一个/之间的文字字符串将被解释为主机

    例子如下:

    const url = require("url");
    var urlstr = "http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC";
    var urlobj = url.parse(urlstr); 
    console.log(urlobj);
    /*
    Url {
      protocol: 'http:',
      slashes: true,
      auth: null,
      host: 'localhost:8888',
      port: '8888',
      hostname: 'localhost',
      hash: null,
      search: '?name=bigbear&memo=helloworld&memo=helloC',
      query: 'name=bigbear&memo=helloworld&memo=helloC',
      pathname: '/bb',
      path: '/bb?name=bigbear&memo=helloworld&memo=helloC',
      href: 'http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC' }
    */
    

    第二个参数为true时
    query: { name: ‘bigbear’, memo: [ ‘helloworld’, ‘helloC’ ] },

    例子如下:

    const url = require("url");
    var urlstr = "http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC";
    console.log(
        url.parse(urlstr, true)
    )
    /*
    Url {
      protocol: 'http:',
      slashes: true,
      auth: null,
      host: 'localhost:8888',
      port: '8888',
      hostname: 'localhost',
      hash: null,
      search: '?name=bigbear&memo=helloworld&memo=helloC',
      query: { name: 'bigbear', memo: [ 'helloworld', 'helloC' ] },
      pathname: '/bb',
      path: '/bb?name=bigbear&memo=helloworld&memo=helloC',
      href: 'http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC' }
    */

    第三个参数对比

    例子如下:

    const url = require("url");
    var urlstr = "//foo/bar ";
    console.log(
        url.parse(urlstr, true,true)
    )
    /*
        输出:Url {
      protocol: null,
      slashes: true,
      auth: null,
      host: 'foo',
      port: null,
      hostname: 'foo',
      hash: null,
      search: '',
      query: {},
      pathname: '/bar',
      path: '/bar',
      href: '//foo/bar' }
    */
    
    
    const url = require("url");
    var urlstr = "//foo/bar ";
    console.log(
        url.parse(urlstr)
    )
    /*
    输出:
    Url {
      protocol: null,
      slashes: null,
      auth: null,
      host: null,
      port: null,
      hostname: null,
      hash: null,
      search: null,
      query: null,
      pathname: '//foo/bar',
      path: '//foo/bar',
      href: '//foo/bar' }
    */

    url模块化

    将一个url对象转换成一个url字符串,url对象中的属性为url.parse()产生的对象的属性。
    url.parse()和url.format()互为逆操作。

    例子如下:

    const url = require("url");
    var Urlobj = {
      protocol: 'http:',
      slashes: true,
      auth: null,
      host: 'localhost:8888',
      port: '8888',
      hostname: 'localhost',
      hash: null,
      search: '?name=bigbear&memo=helloworld&memo=helloC',
      query: { name: 'bigbear', memo: [ 'helloworld', 'helloC' ] },
      pathname: '/bb',
      path: '/bb?name=bigbear&memo=helloworld&memo=helloC',
      }
    console.log(
        url.format(Urlobj)
    )
    //输出:http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC

    路径解析:url.resolve(from, to)

    url.resolve()方法解决了目标URL相对于基本URL的方式类似于Web浏览器解决锚标记href。

    官方手册例子:

    url.resolve('/one/two/three', 'four');       
    //  '/one/two/four'
    
    url.resolve('http://example.com/', '/one');    
    // 'http://example.com/one'
    
    url.resolve('http://example.com/one', '/two'); 
    // 'http://example.com/two'
    展开全文
  • 主要介绍了Python Django框架url反向解析实现动态生成对应的url链接,结合实例形式分析了Django框架URL反向解析具体原理与应用操作技巧,需要的朋友可以参考下
  • 主要介绍了C# URL地址压缩算法及短网址原理解析,本文重点给出了算法代码,需要的朋友可以参考下
  • 关于URL地址的解释,让你深入了解URL

    万次阅读 多人点赞 2018-02-10 19:37:24
    一个完整的网址,例如:http://www.crazyit.org/index.jsp/index.php,遵守如下语法规则:scheme://host.domain:port/path/filename关于URL地址的解释 :scheme:指定因特网服务的类型。最流行的类型是...
  • 获取URL并将URL解析成对象

    千次阅读 2018-12-01 14:06:35
    通过代码window.location.href来获取当前页面的完整的url,这个地址中也会包含URL中的参数,例如:www.baidu.com/acticle?type=food&amp;code=2018 然后我们可以对获取的地址进行拆分,先从?拆分然后获取到后半...
  • 本文主要给大家介绍了关于Node.js地址解析模块URL使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 url结构化/模块化/路径解析 结构化:url.parse(urlString[, parseQueryString...
  • 用C++实现了cmd命令行程序的ping命令,并能够将域名解析成实际的ip地址,详情请见博客地址:http://blog.csdn.net/goforwardtostep/article/details/52988142
  • 一个完整的URL 解析过程

    万次阅读 2018-12-29 10:35:17
    用户访问网页,DNS服务器(域名解析系统)会根据用户提供的域名查找对应的IP地址 域名解析服务器是基于UDP实协议实现的一个应用程序,通常通过监听53端口来获取客户端的域名解析请求。DNS查找过过程如下: 浏览器...
  • url解析地址

    2018-11-29 17:21:24
    1. parse方法,解析url 2. 参数处理:querystring,应对参数传递的场景 参数对象序列化成字符串,stringify函数 反序列化 解析 parse 转义escape 和反转义 unescape
  • js解析url地址

    千次阅读 2019-06-12 16:10:32
    请编写一个 JavaScript函数 parseQueryString, 它的用途是把 URL 参数解析为一个对象,如: var url= ‘http://www.baobao.com/index.php?key0=aaa&key1=1&key2=2’; var obj = parseQueryString(url); ...
  • Url解析例子.rar

    2019-05-16 11:09:50
    delphi7 编译通过, 提供url地址结构解析例子。通过 api 得到 TURLComponents
  • js解析url

    千次阅读 2019-06-05 14:22:24
    window.location.hash——从井号 (#) 开始的 URL(锚) window.location.host ——主机名和当前 URL 的端口号 window.location.hostname ——当前 URL 的主机名 window.location.href ——完整的 URL window....
  •  * url地址修改  * @param url 待修改url  * @param arg 修改的参数名  * @param arg_val 修改的具体值  * @returns {String}  */ function changeURLArg(url,arg,arg_val){  var pattern=arg+'=([^&amp;...
  • 在Spring MVC中,Controller的配置如下: ...在Spring MVC框架中,会将地址中的最后一个点号截断为后缀名,从而判断其请求消费的内容类型,在不改变此策略的情况下,修改请求方式与地址也能达到正确处理的目标。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,060,639
精华内容 424,255
关键字:

url地址解析