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使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
python中实现定制类的特殊方法总结
Sep 28 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
python求质数的3种方法
Sep 28 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
python之生产者消费者模型实现详解
Jul 27 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
Python json读写方式和字典相互转化
Apr 18 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 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转换IP地址到真实地址的方法详解
2013/06/09 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
PHP线程的内存回收问题
2016/07/08 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
jQuery总体架构的理解分析
2011/03/07 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
python实现淘宝购物系统
2019/10/25 Python
学python需要去培训机构吗
2020/07/01 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
办理生育手续介绍信
2014/01/14 职场文书
质量负责人岗位职责
2015/02/15 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers