爬虫学习-urlparse之urljoin()
Posted php-linux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫学习-urlparse之urljoin()相关的知识,希望对你有一定的参考价值。
首先导入模块,用help查看相关文档
>>> from urlparse import urljoin >>> help(urljoin) Help on function urljoin in module urlparse: urljoin(base, url, allow_fragments=True) Join a base URL and a possibly relative URL to form an absolute interpretation of the latter.
1
|
意思就是将基地址与一个相对地址形成一个绝对地址,然而讲的太过抽象 |
接下来,看几个例子,从例子中发现规律。
>>> urljoin("http://www.google.com/1/aaa.html","bbbb.html") ‘http://www.google.com/1/bbbb.html‘ >>> urljoin("http://www.google.com/1/aaa.html","2/bbbb.html") ‘http://www.google.com/1/2/bbbb.html‘ >>> urljoin("http://www.google.com/1/aaa.html","/2/bbbb.html") ‘http://www.google.com/2/bbbb.html‘ >>> urljoin("http://www.google.com/1/aaa.html","http://www.google.com/3/ccc.html") ‘http://www.google.com/3/ccc.html‘ >>> urljoin("http://www.google.com/1/aaa.html","http://www.google.com/ccc.html") ‘http://www.google.com/ccc.html‘ >>> urljoin("http://www.google.com/1/aaa.html","javascript:void(0)") ‘javascript:void(0)‘
规律不难发现,但是并不是万事大吉了,还需要处理特殊情况,如链接是其本身,链接中包含无效字符等
1
|
url = urljoin( "****" , "****" )<br><br> ### find()查找字符串函数,如果查到:返回查找到的第一个出现的位置。否则,返回-1<br>if url.find("‘")!=-1:<br> continue <br><br>### 只取井号前部分<br>url = url.split(‘#‘)[0]<br><br>### 这个isindexed()是我自己定义的函数,判断该链接不在保存链接的数据库中<br>if url[0:4]==‘http‘ and not self.isindexed(url):<br><br> ###newpages = set(),无序不重复元素集<br> newpages.add(url) |
?
以上是关于爬虫学习-urlparse之urljoin()的主要内容,如果未能解决你的问题,请参考以下文章
【Python中常用的库系列】——操作url的模块urlparse 模块
Urllib库基本使用详解(爬虫,urlopen,request,代理ip的使用,cookie解析,异常处理,URL深入解析)