ホームページ  >  記事  >  ウェブフロントエンド  >  Python は非常に、非常に、非常にシンプルなクローラー applet_html/css_WEB-ITnose

Python は非常に、非常に、非常にシンプルなクローラー applet_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-21 08:56:441880ブラウズ

今回初めてクローラーに触れるのですが、このプログラムは初心者がクローラーとは何か、そしてクローラーの基本的なロジックを理解するのに役立ちます。 (NetEase Cloud Classroom の Heibanke 教師のプログラムを参照して書かれています。Hebanke 教師のコースは非常に明確なので、興味のあるプレイヤーはチェックしてみてください)

クロールされた URL は http://www.heibanke.com /lesson です/crawler_ex00/完了する必要があるタスクは、URL の後に表示された番号を入力して次の URL に転送し、表示された番号を再度読み取り、次の URL に転送することで、

をループします。クローラーの要件

クロール時には urllib と BeautifulSoup の 2 つのライブラリを使用する必要があります。URLlib は Python に付属するライブラリです。

pip install beautifulsoup4

インストールは成功しました インポート後

import urllibfrom bs4 import BeautifulSoup

urllib は、クロールする Web サイトを開くために URL を操作するための一連の関数を提供します。

urllib.urlopen(url)

Beautifulsoup は主に HTML を解析するために使用され、 HTML を数値に変換します。各ノードは Python オブジェクトです。すべてのオブジェクトは 4 つのタイプに要約できます: 1.Tag2.NavigableString3.BeautifulSoup4.Comment HTML が

<html> <[head])>  <title>   The Dormouse's story  </title>
print soup.title>>><title>The Dormouse's story</title>
print soup.title.string>>>The Dormouse's story

の場合: プログラム ロジック: ページ上の数字を読み上げ、 URL の後に、数字のない最後のページに入るまで、新しいページの番号を読み続けます。 ブレーク プログラムは次のとおりです:

import urllibfrom bs4 import BeautifulSoupimport re#这个库导入是为了使用正则表达式读取读取找到的内容中的数字url='http://www.heibanke.com/lesson/crawler_ex00/'number=['']#用于储存读到的数字while True:    content = urllib.urlopen(url+number[0])#number为字符串,number[0]为数字    bs_obj = BeautifulSoup(content,"html.parser")#html.parser表示解析网站,不返回任何值    number = bs_obj.h3.string#网页显示出的“你需要在网址后输入数字44513”在html的h3 tag中,number在这里读出了h3里面的内容    number= re.findall(r'\d+',number)#读出了number里面的数字    if not number:#必须判断页面中还有是否还有number,没有说明已经到了最后一个页面,这时应该跳出循环,打印 bs_obj.h3.string        break    else:        print number[0]print bs_obj.h3.string
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。