ホームページ > ウェブフロントエンド > htmlチュートリアル > Python スクリプトは Web サイトのリンクが存在するかどうかを検出します_html/css_WEB-ITnose

Python スクリプトは Web サイトのリンクが存在するかどうかを検出します_html/css_WEB-ITnose

WBOY
リリース: 2016-06-21 08:52:09
オリジナル
1350 人が閲覧しました

Python 言語は操作が簡単だと昔から聞いていましたが、確かに、ほんの数文で基本的な機能を実現できます。

指定された URL がターゲット Web サイトに存在するかどうかを検出するプロセスは、実際には非常に簡単です。

1. 指定された Web サイト ページの HTML コードを取得します。

2. HTML コード内を検索します。 指定された URL

3. 存在する場合は OK、存在しない場合はエラー

プログラム全体が 2 つの lib ライブラリ、urllib2 を参照します。 sgmllib

urllib2 ライブラリは主に、(基本的に HTTP 経由で) URL にアクセスするためのいくつかの関数とクラスを定義します。

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) // このプログラムでは、start_a を呼び出します。 HTML コード内の タグを解析する必要があることを示します。 タグ内の href 属性の値を検索すると、指定した URL が存在する限り、Web ページ上のすべてのリンクに関する情報を取得できます。

これは実際には小さなスクリプトですが、私も興奮しました。第一に、私は Python の世界に入り、実際の仕事で問題を解決するためにそれを使用しました。第二に、そのシンプルな構文とインデント形式に本当に目を輝かせました。今後は、Python をさらに活用して実務でさまざまな問題を解決し、学んだことを応用していきたいと思っています

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート