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的Flask框架中Flask-Admin库的简单入门指引
Apr 07 Python
python创建关联数组(字典)的方法
May 04 Python
详解Python使用simplejson模块解析JSON的方法
Mar 24 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
Python BS4库的安装与使用详解
Aug 08 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
对python while循环和双重循环的实例详解
Aug 23 Python
Python3 翻转二叉树的实现
Sep 30 Python
浅析python内置模块collections
Nov 15 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
python爬取天气数据的实例详解
Nov 20 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使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
浅谈javascript 面向对象编程
2009/10/28 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
Python实现简单http服务器
2018/04/12 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
python numpy 反转 reverse示例
2019/12/04 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
python无序链表删除重复项的方法
2020/01/17 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
再婚婚前财产协议书范本
2014/10/19 职场文书
党员倡议书
2015/01/19 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python