Python检测网站链接是否已存在


Posted in Python onApril 07, 2016

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。

像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。

早就听说Python语言操作简单,果然名不虚传,短短几句,就实现了基本的功能。

要检测目标网站上是否存在指定的URL,其实过程很简单:

1、获得指定网站网页的HTML代码

2、在HTML代码中查找指定的URL

3、如果存在,OK;否则,Error

整个程序引用了两个lib库,urllib2和sgmllib。

urllib2库主要定义了一些访问URL(基本通过HTTP)的函数与类。

sgmllib库主要负责解析HTML代码。

import urllib
from sgmllib import SGMLParser
class URLLister(SGMLParser):
def reset(self):
SGMLParser.reset(self)
self.urls = []
def start_a(self,attrs):
href=[v for k,v in attrs if k=='href']
if href:
if (href[].count('http://网站URL')==):
self.urls.extend(href)
links = ['http://www.google.com/',
'http://www.baidu.com',
'http://www.sohu.net',
'http://www..com',
'http://www.cnblogs.com',
'http://www.qq.com',
'http://www.yahoo.com/',
'http://www.bing.com/',
'http://www..com',]
for eachlink in links:
f = urllib.urlopen(eachlink)
if f.code ==:
parser = URLLister()
parser.feed(f.read())
f.close()
if (len(parser.urls)>=):
print 'The link from '+eachlink+' is OK!'
else:
print 'The link from '+eachlink+' is ERROR!'

这其中几个主要函数:

1、urllib2.urlopen(url[, data][, timeout])//打开一个URL

2、SGMLParser.feed(data) //获得需要解析的HTML数据

3、SGMLParser.start_tag(attributes) //指定需要解析的HTML标签,在本程序中,我们调用了start_a,说明我们需要解析HTML代码中<a>标签。通过查找<a>标签中href属性的value,可以获得该网页上所有链接的信息,只要我们指定的URL存在,就OK了。

这其实是一个很小的脚本,但也让我激动不已。一来,我已经跨进了Python的世界,并用它解决了实际工作中的问题,二来,它的简单语法、缩进格式着实让我眼前一亮。今后,希望能够多多使用Python,解决实际工作中的种种问题,做到学以致用.

以上内容是针对Python检测网站链接是否已存在的相关介绍,希望对大家有所帮助!

Python 相关文章推荐
通过python下载FTP上的文件夹的实现代码
Feb 10 Python
python清除字符串里非字母字符的方法
Jul 02 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
Apr 18 Python
Python之web模板应用
Dec 26 Python
python将每个单词按空格分开并保存到文件中
Mar 19 Python
Python实现二维曲线拟合的方法
Dec 29 Python
Python交互环境下打印和输入函数的实例内容
Feb 16 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
python怎么提高计算速度
Jun 11 Python
Python Django中间件使用原理及流程分析
Jun 13 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
Python classmethod装饰器原理及用法解析
Oct 17 Python
python多进程共享变量
Apr 06 #Python
python socket多线程通讯实例分析(聊天室)
Apr 06 #Python
python文件的md5加密方法
Apr 06 #Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 #Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 #Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 #Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 #Python
You might like
php更新mysql后获取改变行数的方法
2014/12/25 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python编程实现蚁群算法详解
2017/11/13 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Python中format()格式输出全解
2019/04/12 Python
使用Django清空数据库并重新生成
2020/04/03 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
2015年小学生国庆节演讲稿
2015/07/30 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python