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 时间处理datetime实例
Sep 06 Python
python 生成目录树及显示文件大小的代码
Jul 23 Python
python实现socket端口重定向示例
Feb 10 Python
python提取页面内url列表的方法
May 25 Python
Python 递归函数详解及实例
Dec 27 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
Jan 17 Python
详解python播放音频的三种方法
Sep 23 Python
Python hashlib模块实例使用详解
Dec 24 Python
TensorBoard 计算图的可视化实现
Feb 15 Python
Python如何发送与接收大型数组
Aug 07 Python
Python加载数据的5种不同方式(收藏)
Nov 13 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 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之第十天
2006/10/09 PHP
php 获得汉字拼音首字母的函数
2009/08/01 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
2016/11/17 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
python中requests和https使用简单示例
2018/01/18 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
C和C++经典笔试题附答案解析
2014/08/18 面试题
教师个人的自我评价分享
2014/01/02 职场文书
搞笑爱情保证书
2014/04/29 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang