【Python中常用的库系列】——操作url的模块urlparse 模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Python中常用的库系列】——操作url的模块urlparse 模块相关的知识,希望对你有一定的参考价值。

参考技术A 文章目录

一、功能介绍

二、功能介绍

1.`urlparse.urlparse`

2.`urlparse.urlsplit`

3.`urlparse.urljoin`

一、功能介绍

官方文档 :http://docs.python.org/library/urlparse.html

作用:urlparse模块主要是用于解析url中的参数 对url按照一定格式进行 拆分或拼接

注意:urlparse 模块在 python 3.0 中 已经改名为 urllib.parse

二、功能介绍

1.urlparse.urlparse

1.1 获取ParseResult对象

将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是查询的条件

fragment是片段

1.2获取结果的某一项

import urlparse

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

print url_change.query  # opt=1

print url_change.scheme  # https

1.3获取结果的某一项,用字典或元组展示

import urlparse

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

print urlparse.parse_qs(url_change.query)  # 'opt': ['1']

print urlparse.parse_qsl(url_change.query)  # [('opt', '1')]

2.urlparse.urlsplit

2.1获取SplitResult对象

和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是查询的条件

fragment是片段

2.2获取某一项

print url_change.scheme # https

3.urlparse.urljoin

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

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爬虫用啥库

以下是爬虫经常用到的库请求库1 requestsrequests库应该是现在做爬虫最火最实用的库了,非常的人性化。有关于它的使用我之前也写过一篇文

参考技术A

以下是爬虫经常用到的库

请求库

1. requests

requests库应该是现在做爬虫最火最实用的库了,非常的人性化。有关于它的使用我之前也写过一篇文章 一起看看Python之Requests库 ,大家可以去看一下。

2.urllib3

urllib3是一个非常强大的http请求库,提供一系列的操作URL的功能。

3.selenium

自动化测试工具。一个调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。

对于这个库并非只是Python才能用,像JAVA、Python、C#等都能够使用selenium这个库

4.aiohttp

基于 asyncio 实现的 HTTP 框架。异步操作借助于 async/await 关键字,使用异步库进行数据抓取,可以大大提高效率。

这个属于进阶爬虫时候必须掌握的异步库。有关于aiohttp的详细操作,可以去官方文档:https://aiohttp.readthedocs.io/en/stable/

Python学习网- 专业的python自学、交流公益平台!

解析库

1、beautifulsoup

html 和 XML 的解析,从网页中提取信息,同时拥有强大的API和多样解析方式。一个我经常使用的解析库,对于html的解析是非常的好用。对于写爬虫的人来说这也是必须掌握的库。

2、lxml

支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。

3、pyquery

jQuery 的 Python 实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好。

数据存储

1、pymysql

官方文档:https://pymysql.readthedocs.io/en/latest/

一个纯 Python 实现的 MySQL 客户端操作库。非常的实用、非常的简单。

2、pymongo

官方文档:https://api.mongodb.com/python/

顾名思义,一个用于直接连接 mongodb 数据库进行查询操作的库。

3、redisdump

redis-dump是将redis和json互转的工具;redis-dump是基于ruby开发,需要ruby环境,而且新版本的redis-dump要求2.2.2以上的ruby版本,centos中yum只能安装2.0版本的ruby。需要先安装ruby的管理工具rvm安装高版本的ruby。

以上是关于【Python中常用的库系列】——操作url的模块urlparse 模块的主要内容,如果未能解决你的问题,请参考以下文章

python的科学计算库都有哪些

python爬虫用啥库

urllib2模块使用

Python基础入门自学——16--常用内建模块2

python 常用的库

Python运维中20个常用的库和模块