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 相关文章推荐
Fiddler如何抓取手机APP数据包
Jan 22 Python
基于python的七种经典排序算法(推荐)
Dec 08 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
python如何对实例属性进行类型检查
Mar 20 Python
python散点图实例之随机漫步
Aug 27 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
彻底理解Python中的yield关键字
Apr 01 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
用python绘制樱花树
Oct 09 Python
python zip()函数的使用示例
Sep 23 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
PHP调用三种数据库的方法(2)
2006/10/09 PHP
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
php的array_multisort()使用方法介绍
2012/05/16 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Python通过字典映射函数实现switch
2020/11/06 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
JAVA程序员面试题
2012/10/03 面试题
贫困证明模板(3篇)
2014/09/16 职场文书
兵马俑导游词
2015/02/02 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android