python解析url
❶ python3 如何对url解码
url编码:
import urllib
url = 'http://test.com/s?wd=哈哈' #如果尘铅早此网站编码是激蠢gbk的话派雀,需要进行解码,从gbk解码成unicode,再从Unicode编码编码为utf-8格式。
url = url.decode('gbk', 'replace')
print urllib.quote(url.encode('utf-8', 'replace'))
❷ 用python怎么解析'%3cp%3e%e5%'
import urllib
rawurl=xxx
url=urllib.unquote(rawurl)
所用模块:urllib
所用函数:urllib.unquote()
案例
import urllib
rawurl = "%E6%B2%B3%E6%BA%90"url = urllib.unquote(rawurl)print url
输出
河源
问题扩展
urllib.unquote()目的是对url编码进行解码,与该函数对应的是编码函数urllib.quote()
123
>>> import urllib>>> urllib.quote("河源")'%E6%B2%B3%E6%BA%90
URL为何要编码、解码?
通常如果一样东西需要编码,说明这样东西并不适合传输。原因多种多样,如Size过大,包含隐私数据。对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。
例如,Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码。
又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文。否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成问题。
❸ 【Python中常用的库系列】——操作url的模块urlparse 模块
文章目录
一、功能介绍
二、功能介绍
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://.com/ssss/','88888')
print new_url
'''
https://.com/ssss/88888
''' 注意 :如果输入错误信息 如 new_url = urlparse.urljoin('122','88888') 并不会将两者合并,而输出后边的链接,即‘88888’
域名放在第一个参数,第二个参数为要和域名拼接的子链接
❹ 【壹】Python爬虫入门——认识URL
【系列前言】前段时间李响同学入门了一些Python的基础知识,觉得一直在IDLE里print一些算法题有一些枯燥,所以决定通过学习爬虫来提高自己的兴趣。而且最近确实有一些重复性劳动,想使用爬虫简化工作。遂打算边自学边写自己自学的过程,一方面作为小白的我可以和其他Python大神交流,一方面也可以以此监督自己。
【本人使用Python版本:2.7.5】
首先按理解一下爬虫(Spider),如果把一个站点比作一张纵横交错的蜘蛛网,那么我们爬虫要做的就是在这张网上爬来爬去,获得这张网上的信息和资源。而Web上每种资源,比如HTML文档、图片、视频等都由一个URI(Universal Resource Identifier,通用资源标志符)进行定位。 URL(Uniform Resource Locator,统一资源定位符)是URI的子集。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。而爬虫主要的处理对象就是URL。所以务必要对URL有一定的熟悉。
URI通常由三部分组成:
1.访问资源的命名机制;
2.存放资源的主机名;
3.资源自身 的名称,由路径表示。
URL的格式由三部分组成:
1.第一部分是协议(或称为服务方式)。
2.第二部分是存有该资源的主机IP地址(有时也包括端口号)。
3.第三部分是主机资源的具体地址,如目录和文件名等。
知乎:HTTP 协议中 URI 和 URL 有什么区别?@西毒 的回答
最近在搞挑战杯可能会有点忙,但还是希望自己能按照计划学习,定期更新此系列。
❺ Python获取url中域名及从域名中提取ip的方法
这种方法为从urlparse模块中通过urlparse方法提取url通过hostname属性获取当前url的域名。
此方法是通过urllib模块中splittype方法先从url中获取到proto协议及rest结果,然后通过splithost从rest中获取到host及rest结果,此时host为域名。(rest被分割了两次)如下图:
此方法为从sokcet模块中获取到gethostbyname方法将域名传递进去就能解析出域名的ip。
此方法为通过nslookup获取域名的ip。
以上从域名中提取ip会不准确,需要设置DNS服务器,这样解析域名就准确了。
❻ python中中怎么解决url变成文本格式后不能点击
完整的url语法格式:
协议://用户名@密码:子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标识
2 、urlparse模块对url的处理方法
urlparse模块对缓锋饥url的主要处理方法有:urljoin/urlsplit/urlunsplit/urlparse等。该模块对url的定义基御采用六元组的形式:schema://netloc/path;parameters?query#fragment。其中,netloc包含下表的后4个属性
urlparse()
利用urlparse()方法对url进行解析,返回六元组;urlunparse()对六元组进行组合
urljoin()
利用urljoin()方法对绝对url地址与相对url地址进行拼合
主要使用urljoin()比较常用——给出以下示例:
>>>from urllib.parse import urljoin
>>> urljoin("http://www.chachabei.com/folder/currentpage.html", "anotherpage.html")
'http://www.chachabei.com/folder/anotherpage.html'
>>> urljoin("http://www.chachabei.com/folder/currentpage.html", "/anotherpage.html")
'http://www.chachabei.com/anotherpage.html'
>>> urljoin("http://www.chachabei.com/folder/currentpage.html", "folder2/anotherpage.html")
'http://www.chachabei.com/folder/folder2/anotherpage.html'
>>> urljoin("http://www.chachabei.com/folder/currentpage.html", "/folder2/anotherpage.html")
'http://www.chachabei.com/folder2/anotherpage.html'
>>> urljoin("http://www.chachabei.com/abc/folder/currentpage.html", "/folder2/anotherpage.html")
'http://www.chachabei.com/folder2/anotherpage.html'
>>> urljoin("http://www.chachabei.com/abc/folder/currentpage.html", "../anotherpage.html")
'http://www.chachabei.com/abc/anotherpage.html'
登录后复制
urlsplit()
利用urlsplit()方法可以对URL进行分解;与urlparse()相比,urlsplit()函数扰返返回一个五元组,没有parameter参数。
相应的,urlunsplit()方法可以对urlsplit()分解的五元组进行合并。两种方法组合在一起,可以对URL进行有效地格式化,特殊字符在此过程中得到转换。
3 urllib模块对url的编码与解码
urllib模块的quote_plus()方法实现对url的编码,包括对中文的编码;unquote_plus()方法实现对url的解码,包括对中文的解码。
Python
urllib
urljoin()
名表折扣店瑞士手表
精选推荐
广告
python url 参数修改方法
0下载·0评论
2021年1月21日
Python 中的 urlencode 和 urldecode 操作
4859阅读·0评论·2点赞
2019年1月2日
Python常用函数(urlencode 与 urldecode)
496阅读·0评论·0点赞
2022年12月10日
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
0下载·0评论
2020年12月25日
python—接口调用
1.0W阅读·0评论·6点赞
2020年1月18日
python调用第三方接口获取数据_python 接口实现 供第三方调用的例子
116阅读·0评论·0点赞
2020年11月28日
Python中url的编码以及解码
8828阅读·0评论·3点赞
2021年9月7日
使用python 实现url 接口的方法
3334阅读·0评论·2点赞
2019年1月22日
Python2.7 网络请求 urllib、urllib2和requests
777阅读·0评论·0点赞
2022年6月21日
python 中的 urlencode 编码与 urldecode 解码
3732阅读·1评论·1点赞
2022年3月10日
python2.7 模拟登录后调用自定义HTTP接口发送告警
113阅读·0评论·0点赞
2020年8月4日
python2.7版本登录获取cookie并调用接口(二)
804阅读·0评论·0点赞
2022年3月8日
python调用接口限流_Kong 网关API安装部署以及应用实例----------腾云驾雾
418阅读·0评论·0点赞
2020年12月5日
urllib2模块中文翻译与学习 - Python 2.7.8官方文档
44阅读·0评论·0点赞
2014年10月30日
Python 2.7 获取网络信息(Urllib)
3262阅读·0评论·1点赞
2017年6月30日
Python---关于URL的处理(基于Python2.7版本)
491阅读·0评论·0点赞
2019年6月3日
python爬虫开发 urlparse、parse_qs、urlencode、quote、unquote、urljoin 用法总结
284阅读·0评论·0点赞
2022年10月11日
Python 解析获取 URL 参数以及使用
3806阅读·0评论·3点赞
2022年6月9日
Python-URL编码和URL解码方法
8796阅读·2评论·3点赞
2020年8月13日
去首页
看看更多热门内容
❼ python如何解析url获取host
最近在工作中需要将url的host和path路径分开存储,python内置的 urlparse , 支持我们优雅的解决这个问题, 参考地址
由上文我们可以看到,url被拆分的很细致,提取的方法也很简单,只需要给属性取一个别名,后面跟上解析的key,即可匹配出解析文本。
❽ Python网页解析库:用requests-html爬取网页
Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等。在网上玩爬虫的文章通常都是介绍 BeautifulSoup 这个库,我平常也是常用这个库,最近用 Xpath 用得比较多,使用 BeautifulSoup 就不大习惯,很久之前就知道 Reitz 大神出了一个叫 Requests-HTML 的库,一直没有兴趣看,这回可算歹着机会用一下了。
使用 pip install requests-html 安装,上手和 Reitz 的其他库一样,轻松简单:
这个库是在 requests 库上实现的,r 得到的结果是 Response 对象下面的一个子类,多个一个 html 的属性。所以 requests 库的响应对象可以进行什么操作,这个 r 也都可以。如果需要解析网页,直接获取响应对象的 html 属性:
不得不膜拜 Reitz 大神太会组装技术了。实际上 HTMLSession 是继承自 requests.Session 这个核心类,然后将 requests.Session 类里的 requests 方法改写,返回自己的一个 HTMLResponse 对象,这个类又是继承自 requests.Response,只是多加了一个 _from_response 的方法来构造实例:
之后在 HTMLResponse 里定义属性方法 html,就可以通过 html 属性访问了,实现也就是组装 PyQuery 来干。核心的解析类也大多是使用 PyQuery 和 lxml 来做解析,简化了名称,挺讨巧的。
元素定位可以选择两种方式:
方法名非常简单,符合 Python 优雅的风格,这里不妨对这两种方式简单的说明:
定位到元素以后势必要获取元素里面的内容和属性相关数据,获取文本:
获取元素的属性:
还可以通过模式来匹配对应的内容:
这个功能看起来比较鸡肋,可以深入研究优化一下,说不定能在 github 上混个提交。
除了一些基础操作,这个库还提供了一些人性化的操作。比如一键获取网页的所有超链接,这对于整站爬虫应该是个福音,URL 管理比较方便:
内容页面通常都是分页的,一次抓取不了太多,这个库可以获取分页信息:
结果如下:
通过迭代器实现了智能发现分页,这个迭代器里面会用一个叫 _next 的方法,贴一段源码感受下:
通过查找 a 标签里面是否含有指定的文本来判断是不是有下一页,通常我们的下一页都会通过 下一页 或者 加载更多 来引导,他就是利用这个标志来进行判断。默认的以列表形式存在全局: ['next','more','older'] 。我个人认为这种方式非常不灵活,几乎没有扩展性。 感兴趣的可以往 github 上提交代码优化。
也许是考虑到了现在 js 的一些异步加载,这个库支持 js 运行时,官方说明如下:
使用非常简单,直接调用以下方法:
第一次使用的时候会下载 Chromium,不过国内你懂的,自己想办法去下吧,就不要等它自己下载了。render 函数可以使用 js 脚本来操作页面,滚动操作单独做了参数。这对于上拉加载等新式页面是非常友好的。
❾ 什么是python url解析器
python标准库中有个url解析库,叫【urlparser】,它的作用是解析给定的url,
并返回一个6-tuple,类型是ParseResult(scheme, netloc, path, params, query, fragment)
在爬虫方面是很有用的
❿ python指定url
今天简单使用了一下python的re模块和lxml模块,分别利用的它们提供的正则表达式和xpath来解析页面源码从中提取所需的title,xpath在完成这样的小任务上效率非常好,在这里之所以又使用了一下正则表达式是因为xpath在处理一些特殊的页面的时候会出现乱码的情况,当然这不是xpath的原因,而是页面本身编码,跟utf-8转码之间有冲突所致,这里看代码:
python抽取指定url页面的title方法(python获取当前页面的url) python 抽取 url title 脚本之家 第1张
# !/usr/bin/python
#-*-coding:utf-8-*-
'''
功能:抽取指定url的页面内容中的title
'''
import re
import chardet
import urllib
from lxml import etree
def utf8_transfer(strs):
'''
utf8编码转换
'''
try:
if isinstance(strs, unicode):
strs = strs.encode('utf-8')
elif chardet.detect(strs)['encoding'] == 'GB2312':
strs = strs.decode("gb2312", 'ignore').encode('utf-8')
elif chardet.detect(strs)['encoding'] == 'utf-8':
strs = strs.decode('utf-8', 'ignore').encode('utf-8')
except Exception, e:
print 'utf8_transfer error', strs, e
return strs
def get_title_xpath(Html):
'''
用xpath抽取网页Title
'''
Html = utf8_transfer(Html)
Html_encoding = chardet.detect(Html)['encoding']
page = etree.HTML(Html, parser=etree.HTMLParser(encoding=Html_encoding