Pythonの:リクエストライブラリー、(単純なWebクローラー用の)基本的な使用BeautifulSoup4ライブラリー

Pythonの:リクエストのライブラリ、BeautifulSoup4 (簡単なWebクローラー用)ライブラリの基本的な使用

まず、基本的なライブラリの使用要求

要求のpython言語で書かれたシンプルに使えるの HTTPのよりも使用するようにライブラリurllibは、よりシンプルで便利に。

 

要求があることで、使用する前に、サードパーティのライブラリピップインストール

ピップリクエストをインストール

 

1. 基本的な使い方:

インポート要求

Baiduのホームページの、例えば

レスポンス = requests.get(' http://www.baidu.com ' 

属性応答オブジェクト

印刷(response.status_code)  印刷ステータスコード

印刷(response.url)          印刷要求のURL

プリント(Response.Headers)      印刷ヘッダ情報

印刷(Response.Cookies)      プリントクッキー情報

印刷(response.text)  テキスト形式でWebページのソースコードを印刷

印刷(response.content)#1 バイトの出力ストリーム

 

実行ショーの後

ステータスコード:200


URL:www.baidu.com


出力ヘッダ情報、クッキー情報やページの情報源


<RequestsCookieJar [<クッキーBDORZ = 27315 ため .baidu.com />]>

 

2. さまざまな方法の要求( HTTP テストサイト:http://httpbin.org/

インポート要求


requests.get(' http://httpbin.org/get ' 

requests.post(' http://httpbin.org/post ' 

requests.put(' http://httpbin.org/put ' 

requests.delete(' http://httpbin.org/delete ' 

requests.head(' http://httpbin.org/get ' 

requests.options(' http://httpbin.org/get '

 

3.responseのオブジェクトメソッド

JSON() 可能なHTTPの存在解析応答内容JSONのデータは、解析を容易にするHTTP の動作を。

raise_for_statusは() 限り、要求のステータスを返しSTATUS_CODE ない200 、例外が生成されます。してみてください-以外のステートメント。

 

リクエストは、いくつかの一般的に使用される例外を生成します。

ConnectionErrorの例外次のようなネットワークの異常、DNSのクエリが失敗したが、接続を拒否しました。

HTTPError の例外:無効なHTTPのレスポンス。

タイムアウト例外:リクエストURLのタイムアウト。

TooManyRedirects 例外:要求がリダイレクト・セットの最大数を超えています。

 

Webページの機能の内容は、次のコードを使用することをお勧めします:

デフgetHTMLText(URL):

    してみてください

        R = requests.get(URL、タイムアウト= 30 

        r.raise_for_status() は、ステータスが200でない場合は、例外がスローされ

        r.encoding = UTF-8 いいえ、元のエンコーディングがUTF-8に変更されたかは重要で

        リターンr.text

    除きます

        リターン 「」    

 

 

二、 beautifulsoup4 基本的なライブラリを使用

beautifulsoup4のパースとの処理のためのライブラリHTML XML その最大の利点は、に基づいており、HTML XMLのビルド有用な情報を抽出する解析木文法。

 

beautifulsoup4 また、使用する前に、サードパーティ製のライブラリ、同じにする必要ピップインストールを

ピップbeautifulsoup4をインストール

 

注: beautifulsoup4のライブラリとbeautifulsoupのライブラリが混乱することができない、荒廃に後者によるものは、もはや維持されます。

 

使用中 beautifulsoup4 ライブラリーのニーズが引用される前に:

BS4のインポートBeautifulSoup

 

使用 BeautifulSoup()を作成するためにBeautifulSoupのオブジェクトを。

インポート要求

BS4のインポートBeautifulSoup

 
R = requests.get(' http://www.baidu.com ' 

r.encoding = ' UTF-8 '

スープ = BeautifulSoup(r.text、' html.parser ' 

印刷(タイプ(スープ))

 

 

BeautifulSoupオブジェクトがあり、ツリー構造からなる HTMLのページの各タグの構成ラベル属性BeautifulSoupオブジェクトを。次のプロパティBeautifulSoup共通オブジェクト:

soup.head HTML ページの<head> コンテンツ

soup.title HTMLの中にページのコンテンツのタイトル、<head>の

soup.body HTML ページの<body> コンテンツ

soup.p HTML ページ最初の<P> コンテンツ

soup.strings HTMLのすべての表示ページのWeb 上の文字列の内容を

soup.stripped_strings HTMLのすべてでレンダリングしたページのWeb 上の非空白文字列の内容

 

出力内容Baiduのホームページのタイトルタグ

インポート要求

BS4のインポートBeautifulSoup

 

R = requests.get(' http://www.baidu.com ' 

r.encoding = ' UTF-8 '

スープ = BeautifulSoup(r.text、' html.parser ' 

印刷(soup.title)

 

 

beautifulsoup4のライブラリーは、各タグと呼ばれるタグタグオブジェクト、オブジェクトタグの一般的な特性は次の通りです:

名前:のラベル体の名前はのような文字列であり、 A

ATTRS:辞書、それはラベルのすべてのプロパティが含まれています。

内容:現在のラベル内のすべてのサブラベルの内容を含むリスト。

文字列:文字列、タグ、テキスト、ウェブページ、実際のテキストに囲まれています。

 

インポート要求

BS4のインポートBeautifulSoup


R = requests.get(' http://www.baidu.com ' 

r.encoding = ' UTF-8 '

スープ = BeautifulSoup(r.text、' html.parser ' 

印刷(soup.a)

印刷(soup.a.name)

印刷(soup.a.attrs)

印刷(soup.a.string)

print(soup.p.contents)

 

 

如果需要遍历整个HTML页面列出标签对应的所有内容,可以用到find_all()方法。

BeautifulSoup.find_all( name , attrs , recursive , string , limit )

 

根据参数找对应标签,返回类型为列表。参数如下:

name:根据标签名查找。

attrs:根据标签属性值查找,需要列出属性名和值,用JSON表示。

recursive:设置查找层次,只查找当前标签下一层时使用recursive=False

string:根据关键字查找string属性内容,采用string=开始。

limit:返回结果个数,默认返回全部结果。

 

import requests

from bs4 import BeautifulSoup

#爬取前程无忧网软件工程师薪资

r=requests.get('https://m.51job.com/search/joblist.php?jobarea=180400,180200&keyword=%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88&partner=webmeta')

r.encoding='utf-8'

soup=BeautifulSoup(r.text,'html.parser')

allsalary=soup.find_all('em')

for i in allsalary:

    if len(i.text)==0:

    continue

    print(i.text)

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/BIXIABUMO/p/11831212.html