• 技术文章 >Python技术 >Python爬虫

    Python中实现URL的解析

    PythonPython2019-06-14 10:56:55原创4872
    在Python中的urlparse模块主要是用于解析url中的参数 对url按照一定格式进行 拆分或拼接

    1.urlparse.urlparse

    将url分为6个部分,返回一个包含6个字符串项目的元组:协议、位置、路径、参数、查询、片段。

    import urlparse
    url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
    print url_change

      输出结果为:

    ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')

    其中 scheme 是协议 netloc 是域名服务器 path 相对路径 params是参数,query是查询的条件

    urlparse.parse_qs(urlparse.urlparse(url).query)

    这个是获取urlparse分割后元祖中的某一项 urlparse.urlparse(url).query 获取查询条件

    parse_qs 有几种实现

    urlparse.parse_qs 返回字典
    urlparse.parse_qsl 返回列表

    2. urlparse.urlsplit

    和urlparse差不多,将url分为5部分,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。

    import urlparse
    url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1')
    print url_change
    SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')

    其中 scheme 是协议 netloc 是域名服务器 path 相对路径 query是查询的条件

    3.urlparse.urljoin

    将相对的地址组合成一个url,对于输入没有限制,开头必须是http://,否则将不组合前面。

    import urlparse
    new_url = urlparse.urljoin('https://baidu.com/ssss/','88888')
    print new_url
    输出 https://baidu.com/ssss/88888

    如果输入错误信息 如 new_url = urlparse.urljoin('122','88888') 并不会将两者合并 输出‘88888’

    专题推荐:python
    品易云
    上一篇:看kindle网站电子书用Python爬取下载 下一篇:urllib2能处理post请求吗

    相关文章推荐

    • 用Python实现的二分查找算法• Python代码中怎么读取键盘录入的值• Python中自定义异常的使用举例• Python中SQLite的简单应用

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网