BeautifulSoupとは何ですか
爬虫類で、所望のデータを抽出するためのHTMLツールを読み取ることができるようにする必要があります。これは、分析データです。
[データを抽出]我々はデータの数から選択する必要があるデータを指します。
解析し、フォーカスの両方で爬虫類のデータを抽出するが、困難も
使用方法BeautifulSoup
インストールbeautifulsoup ==>
pip install BeautifulSoup4
括弧内に、2つの入力パラメータに、最初のパラメータがなければならないテキスト、ノート、それを解析する0である文字列でなければなりません。
最初のパラメータは、パーサーを識別するために使用されるブラケット、我々は、Pythonは組み込みのライブラリです使用します。
html.parser
import requests #调用requests库
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider-men5.0.html')
#获取网页源代码,得到的res是response对象
print(res.status_code) #检查请求是否正确响应
html = res.text #把res的内容以字符串的形式返回
print(html)#打印html
复制代码
import requests
from bs4 import BeautifulSoup
#引入BS库
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider-men5.0.html')
html = res.text
soup = BeautifulSoup(html,'html.parser') #把网页解析为BeautifulSoup对象
print(type(soup)) # <class 'bs4.BeautifulSoup'>
复制代码
印刷
soup
ソースコードを、我々が使用する前に、response.text
ソースコードを印刷することとまったく同じですけれども
response.text
およびsoup
表面の内容をプリントアウトするには、まったく同じに見えます彼らは、異なるクラスに属しています
<class 'str'>
し、<class 'bs4.BeautifulSoup'>
抽出データ
我々はまだ使用
BeautifulSoup
データを抽出します。:このステップで、知識は二つの部分に分けることができるだけでなく。
find()
find_all()
Tag对象
find()
そして、find_all()
あるBeautifulSoup
オブジェクトの二つの方法が、彼らは、HTMLタグと属性を一致させることができ、データの要件を満たすBeautifulSoupオブジェクトが抽出され、
違いは、ある
find()
要件を満たすために最初の、及びのデータのみ抽出find_all()
抽出されたデータは、すべての要件を満たすために
localprod.pandateacher.com/python-manu...
HTMLコード三存在
<div>
を持つ要素は、find()
最初の要素を抽出することができ、そしてfind_all()
全て抽出することができます
import requests
from bs4 import BeautifulSoup
url = 'https://localprod.pandateacher.com/python-manuscript/crawler-html/spder-men0.0.html'
res = requests.get (url)
print(res.status_code)
soup = BeautifulSoup(res.text,'html.parser')
item = soup.find('div') #使用find()方法提取首个<div>元素,并放到变量item里。
print(type(item)) #打印item的数据类型
print(item) #打印item
复制代码
import requests
from bs4 import BeautifulSoup
url = 'https://localprod.pandateacher.com/python-manuscript/crawler-html/spder-men0.0.html'
res = requests.get (url)
print(res.status_code)
soup = BeautifulSoup(res.text,'html.parser')
items = soup.find_all('div') #用find_all()把所有符合要求的数据提取出来,并放在变量items里
print(type(items)) #打印items的数据类型
print(items) #打印items
复制代码
カッコ内の例えば
class_
、Pythonの構文とクラスのために、アンダースコアがあるclass
プログラムの競合を避けるため、区別小演習:ページタイトル3冊の本、リンク、および書評をクロール
localprod.pandateacher.com/python-manu...
知識のもう一つのポイント-
Tag
オブジェクト。
私たちは通常、選択した
type()
機能チェックのデータ型を、Pythonはオブジェクト指向プログラミング言語であり、唯一のオブジェクトは、関連するオブジェクトのプロパティとメソッドを呼び出すことが何であるかを知っています。
find()
抽出されたデータ型とちょうど同じ、またはTag
オブジェクト
私たちはできる
Tag.text
提案Tag
で、対象のテキストをTag['href']
抽出するURL
import requests #调用requests库
from bs4 import BeautifulSoup
# 获取数据
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider-men5.0.html')
# res.status_code 状态码
# res.content 二进制
# res.text html代码
# res.encoding 编码
# 解析数据
# soup 是beautifulsoup对象
soup = BeautifulSoup(res.text,'html.parser')
# soup.find(标签名,属性=属性值)
# soup.find_all(标签名, 属性=属性值)
# 提取数据 list 里面是tag对象
item = soup.find_all('div',class_='books')
for i in item:
# i.find().find().find() # tag对象, 可以一级一级找下去
# i.find_all()
# i 是tag对象, 也可以使用find和find_all, 得到结果还是tag对象
# i.find().find().find().find()
print(i.find('a',class_='title').text) # 获取标签内容
print(i.find('a',class_='title')['href']) # 获取标签属性(href)
print(i.find('p',class_='info').text) # 获取标签内容
复制代码
あなたはスーパーでスナックを購入したい層のようなビットを取得するプロセス
変更プロセスオブジェクト
最初
requests
する、データを取得しBeautifulSoup
たデータを解析して、BeautifulSoup
データを抽出ことは、操作の対象である私たちの経験をキャストし続けます
フルバージョン
フルバージョン
コードをおさらいするには...
import requests #调用requests库
from bs4 import BeautifulSoup
# 获取数据
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider-men5.0.html')
# res.status_code 状态码
# res.content 二进制
# res.text html代码
# res.encoding 编码
# 解析数据
# soup 是beautifulsoup对象
soup = BeautifulSoup(res.text,'html.parser')
# soup.find(标签名,属性=属性值)
# soup.find_all(标签名, 属性=属性值)
# 提取数据 list 里面是tag对象
item = soup.find_all('div',class_='books')
for i in item:
# i.find().find().find() # tag对象, 可以一级一级找下去
# i.find_all()
# i 是tag对象, 也可以使用find和find_all, 得到结果还是tag对象
# i.find().find().find().find()
print(i.find('a',class_='title').text) # 获取标签内容
print(i.find('a',class_='title')['href']) # 获取标签属性(href)
print(i.find('p',class_='info').text) # 获取标签内容
复制代码
概要
beautifulsoupパーサ
パーザー | 使用 | 優位 | 恵まれません |
---|---|---|---|
Pythonの標準ライブラリ | BeautifulSoup(テキスト、 "html.parser") | 内蔵中等度の強度の文書のフォールトトレランスの標準Pythonライブラリの実行速度 | 2.7.3または3.2.2差異のフォールトトレランスの前にPythonドキュメントのバージョン |
lxmlのHTMLパーサ | BeautifulSoup(テキスト、 "lxmlの") | 強力なスピード文書のフォールトトレランス | あなたは、C言語のライブラリをインストールする必要があります |
lxmlのXMLパーサ | BeautifulSoup(テキスト、 "XML") | のみサポート速いXMLパーサ | あなたは、C言語のライブラリをインストールする必要があります |
html5lib | BeautifulSoup(テキスト、 "html5lib") | ドキュメントHTML5形式の生成 | これは、低速の外部拡張に依存しません |
ジョブ1:記事をクロールし、(それぞれの記事、htmlファイル)に保存します
wordpress-edu-3autumn.localprod.forc.work
ジョブ2:books.txtに保存し、名前と対応する価格の分類の下に本をクロール
books.toscrape.com
正味の効果...
クイックジャンプ:
猫の兄弟は爬虫類000--を書くためにあなたを教えた.md始まる
猫の兄弟爬虫類001を書くためにあなたを教える-印刷()関数と変数た.md
猫の兄弟は爬虫類002--仕事を書くためにあなたを教える-ピカチュウた.md印刷
猫の兄弟は爬虫類を書くためにあなたを教えます003データ型変換た.md
猫の兄弟爬虫類004--データ型変換を書くためにあなたを教える-小さな実践がた.md
猫の兄弟を爬虫類005--データ型変換を書くためにあなたを教える-小さな仕事はた.md
猫の兄弟が爬虫類を書くためにあなたを教えます006- -条件付きとネストされた条件は、た.md
小さなオペレーティングた.md - 007爬虫類の条件とネストされた条件を書くためにあなたを教える猫の兄弟を
猫の兄弟をあなたは爬虫類008を書くことを教える-入力()関数は、た.md
猫の兄弟が爬虫類を書くためにあなたを教えます009 -入力()関数- AI小さな愛の学生がた.md
猫の兄弟を、010爬虫類、辞書のリストを書くために循環た.mdあなたを教える
猫の兄弟を爬虫類011--リスト、辞書、循環書くためにあなたを教える-小さな仕事をた.md
猫の兄は、あなたがブール値を書くことを教える、と4つの爬虫類012--のステートメントはた.md
あなたがブール値の書き込みに教える猫の兄弟を、そして4匹の爬虫類013--文-小さなジョブた.md
PKゲーム-猫の兄は、あなたが爬虫類014書くことを教えます。 MDの
PKゲーム(新しいリビジョン)た.md -猫の兄は、あなたが爬虫類015の書き込みに教える
あなたがた.md爬虫類016--機能書くことを教える猫の兄弟
猫の兄弟があなたが爬虫類017--関数を書くことを教えるを-小さなジョブがた.md
あなたを教えるために猫の兄弟を爬虫類018--debug.md書き込み
デバッグ-仕事-猫の兄弟を爬虫類019を書くためにあなたを教えます。mdの
猫の兄弟爬虫類020--クラスとオブジェクト(上)を書くためにあなたを教えた.md
猫の兄弟が爬虫類に021--クラスとオブジェクト(a)の書き込みにあなたを教える-ジョブた.mdを
猫の兄弟があなたが爬虫類に022--クラスとオブジェクトを書くことを教える(下)た.md
求人た.md -猫の兄は、あなたが爬虫類に023--クラスとオブジェクトを(下)書くことを教える
猫の兄弟があなたが爬虫類の書き込みに024--コード化された復号を教え&&た.md
猫の兄弟がコード化されたデコード爬虫類025 &&を書くためにあなたを教える-小さな仕事はた.md
猫の兄弟をあなたに教える爬虫類026--モジュールを書くためた.md
猫の兄弟爬虫類を書くためにあなたを教える027--モジュールがた.md紹介
猫の兄弟が爬虫類を書くためにあなたを教えます028- -導入モジュール-小さな仕事-看板た.md
猫の兄は、あなたが予備-requests.md爬虫類爬虫類029--書くことを教える
あなたは030--予備-requests-ジョブがた.md爬虫類爬虫類書くことを教える猫の兄弟を
猫の兄弟が031爬虫類を書くためにあなたを教えます-爬虫類の基礎-html.md
猫の兄は、あなたが爬虫類爬虫類032--最初の経験を書くことを教える-BeautifulSoup.md
猫の兄弟があなたが033--初めての経験-BeautifulSoup-ジョブがた.md爬虫類爬虫類の書き込みに教える
あなたは爬虫類を書くことを教える猫の兄弟を034- -た.md練習-BeautifulSoup爬虫類
の仕事- - top250.mdフィルム猫の兄は、あなたは035--爬虫類爬虫類-BeautifulSoup練習書くことを教える
猫の兄弟があなたが036--爬虫類爬虫類-BeautifulSoupの練習を書くために教えを-仕事-仕事をた.md映画top250-を解決するために
猫の兄弟は037--爬虫類爬虫類を書くためにあなたを教える-ベビーた.md曲を聴くために
猫の兄弟があなたに教える爬虫類を書くこと038--引数がた.md要求
猫の兄弟を保存されたデータを書き込むためにあなたを教える爬虫類039--た.md
猫の兄弟爬虫類を書くためにあなたを教えます040--ストアデータ -ジョブた.md
猫の兄弟があなたが爬虫類を書くことを教える041--アナログログイン-cookie.md
猫の兄弟は爬虫類042を書くためにあなたを教える-セッション使用はた.md
猫の兄弟を爬虫類を書くためにあなたを教える043--アナログブラウザがた.md
猫の兄弟を爬虫類044--アナログブラウザを書くためにあなたを教える-ジョブがた.md
猫の兄弟が爬虫類を書くためにあなたを教えます045--コルーチンた.md
練習- -猫の兄は爬虫類046--コルーチン書くためにあなたを教えて太っていないた.md食べるためにどのような
猫の兄弟を爬虫類047を書くためにあなたを教える-た.md scrapyフレームワーク
猫の兄弟が爬虫類を書くためにあなたを教えます048--た.md爬虫類爬虫類および抗
猫の兄弟は爬虫類を書くためにあなたを教える049--エンドSahuaた.md
ます。https://juejin.im/post/5cfc4adb6fb9a07eee5ec09aで再現