Python脚本检测网站链接是否存在

早就听说Python语言操作简单,果然名不虚传,短短几句,就实现了基本的功能。

要检测目标网站上是否存在指定的URL,其实过程很简单:

1、获得指定网站网页的HTML代码

2、在HTML代码中查找指定的URL

3、如果存在,OK;否则,Error

整个程序引用了两个lib库,urllib2sgmllib

urllib2库主要定义了一些访问URL(基本通过HTTP)的函数与类。

sgmllib库主要负责解析HTML代码。

1 import urllib2
 2 from sgmllib import SGMLParser
 3 
 4 class URLLister(SGMLParser):
 5     def reset(self):
 6         SGMLParser.reset(self)
 7         self.urls = []
 8 
 9     def start_a(self,attrs):
10         href=[v for k,v in attrs if k==‘href‘]
11         if href:
12             if (href[0].count(‘http://网站URL‘)==1):
13                 self.urls.extend(href)
14 
15 
16 links = [‘http://www.google.com/‘,
17          ‘http://www.baidu.com‘,
18          ‘http://www.sohu.net‘,
19          ‘http://www.163.com‘,
20          ‘http://www.cnblogs.com‘,
21          ‘http://www.qq.com‘,
22          ‘http://www.yahoo.com/‘,
23          ‘http://www.bing.com/‘,
24          ‘http://www.360.com‘,]
25 
26 for eachlink in links:
27     f = urllib2.urlopen(eachlink)
28     if f.code ==200:
29         parser = URLLister()
30         parser.feed(f.read())
31         f.close()
32         if (len(parser.urls)>=1):
33             print ‘The link from ‘+eachlink+‘ is OK!‘
34         else:
35             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,解决实际工作中的种种问题,做到学以致用

时间: 2024-12-28 00:25:45

Python脚本检测网站链接是否存在的相关文章

Python脚本检测一个url地址

说明: 检测URL地址,检测依据返回的url的code地址,返回不正常,则报警 #!/usr/bin/env  python #coding:utf-8 # #Author Summer # #Create date:2015-07-24 import smtplib import string import urllib import time def email():    HOST="smtp.163.com"    FROM="***********@163.com&

python开发全自动网站链接主动提交百度工具

自己网站因数据比较多,趁晚上没事就写了一个通过python爬取url自动提交给百度,实现网站全站提交的思路,代码实现很简单,因为编写时间仓储,难免有些bug,可以放在服务器上配置下定时爬取提交. import os import re import shutil REJECT_FILETYPE = 'rar,7z,css,js,jpg,jpeg,gif,bmp,png,swf,exe' #定义爬虫过程中不下载的文件类型 def getinfo(webaddress): #'#通过用户输入的网址连

python 脚本检测python 版本

通过sys 模块的sys_info可以返回当前python 的版本信息, 其返回值是一个元组, 比如(2, 6, 6, 'final', 0); 表示当前版本为2.6.6 , 我们可以利用这个变量的值判断python版本: #!/usr/bin/python import sys if sys.version_info < (2, 7): sys.stdout.write("At least python 2.7 is required\n") sys.exit(1) 如果Pyt

简易Python脚本爬取我爱我家网站信息

最近杭州房价涨得好凶,要不要跟风买房,确实是个头疼的问题,不过做点准备总是没坏处的.前段时间我找了一个我爱我家的中介了解了下情况,他提到我爱我家官网,说上面信息的时效性和准确度都不错,可以时常关注一下.本着程序员的天性,一切可以用脚本偷懒的事情就都不要麻烦自己动手了,于是就写了一个脚本,用于监测我爱我家官网的消息变动,有新的房源信息就发短信给自己. 首先分析一下可行性,爬取网站,取得HTML页面的信息当然是没什么难度的,接下来就是从中整理出有用的信息,然后发短信给自己了. 发送短信的服务,搜索了

python脚本实现集群检测和管理

python脚本实现集群检测和管理 场景是这样的:一个生产机房,会有很多的测试机器和生产机器(也就是30台左右吧),由于管理较为混乱导致了哪台机器有人用.哪台机器没人用都不清楚,从而产生了一个想法--利用一台机器来管理所有的机器,记录设备责任人.设备使用状态等等信息....那么,为什么选择python,python足够简单并且拥有丰富的第三方库的支持. 最初的想法 由于刚参加工作不久,对这些东西也都没有接触过,轮岗到某个部门需要做出点东西来(项目是什么还没情况,就要做出东西来,没办法硬着头皮想点

SecureCRT中python脚本编写

SecureCRT中python脚本编写学习指南 SecureCRT python 引言 在测试网络设备中,通常使用脚本对设备端进行配置和测试以及维护:对于PE设备的测试维护人员来说使用较多是SecureCRT工具:SecureCRT支持VB.JavaScript.Python等多种脚本语言,为了实现脚本在CRT中更加丰富稳定地执行,掌握CRT的常用函数是非常有用的.接下来的时间我将对SecureCRT脚本编写的常用函数展开学习应用. 内容 (1)使用python语言实现SecureCRT中的D

python 登陆一个网站

今天想用python写一个登陆的脚本,搜了一下,网上挺多的,看了一些后写了个登陆虎扑论坛的脚本. 原理: 只要在发送http请求时,带上含有正常登陆的cookie就可以了. 1.首先我们要先了解cookie的工作原理. Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie).Cookie名称和值可以由服务器端开发自己定义,

shell脚本检测网络是否畅通

shell初始化安装脚本执行时,需从网络上安装一些rpm包,所有需要先检测网络的畅通性, 代码 #检测网络链接&&ftp上传数据 function networkAndFtp() { #超时时间 timeout=5 #目标网站 target=www.baidu.com #获取响应状态码 ret_code=`curl -I -s --connect-timeout $timeout $target -w %{http_code} | tail -n1` if [ "x$ret_co

检测网站被***的方法及预防网站被黑的解决方法

网站被***,首先牵扯到的就是网站的开发语言,包括了代码语言,以及数据库语言,目前大多数网站都是使用的PHP,JAVA,.net语言开发,数据库使用的是mysql,oracle等数据库,那么网站被***了该怎么办?运营一个网站,总被***是时有发生的,尤其一些公司网站,以及个人建站,都是没有专职的安全技术人员维护,导致网站经常被***,经常被跳转到bo彩,cai票,du博网站上去,甚至有些网站都被挂马,网站首页标题也被篡改,没有专业的安全技术维护,面对这样的问题只能是干着急,没有什么好办法.那么