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装饰器使用示例及实际应用例子
Mar 06 Python
python fabric使用笔记
May 09 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
Apr 11 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
python性能测量工具cProfile使用解析
Sep 26 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
Python多线程Threading、子线程与守护线程实例详解
Mar 24 Python
jupyter notebook中新建cell的方法与快捷键操作
Apr 22 Python
keras slice layer 层实现方式
Jun 11 Python
Python Sqlalchemy如何实现select for update
Oct 12 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 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
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
php强制下载文件函数
2016/08/24 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
一个原生的用户等级的进度条
2010/07/03 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
python实现支付宝转账接口
2019/05/07 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
拾金不昧表扬信范文
2014/01/11 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
卖房协议书样本
2014/10/30 职场文书
会计稽核岗位职责
2015/04/13 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS