BeautifulSoup requests爬虫類初体験
3107 ワード
BeautifulSoup requests爬虫類初体験
爬虫類はpythonと言わざるを得ない
よく使われるPython爬虫類庫(hunt zhanより抜粋) Beautiful Soup.有名で、よく使われる爬虫類の需要を統合しています.欠点:JSをロードできません. Scrapy.強力な爬虫フレームワークのように見え、簡単なページの爬虫(url patternが明確に知られている場合など)を満たすことができます.このフレームワークでアマゾンの商品情報などのデータを簡単に登ることができます.しかし、weiboのような少し複雑なページ情報では、このフレームワークはニーズを満たすことができません. mechanize.利点:JSをロードできる.欠点:ドキュメントが大幅に欠落しています.しかし、公式のexampleや人肉で試してみる方法は、無理に使えます. selenium.これはブラウザを呼び出すdriverです.このライブラリでは、認証コードの入力など、ブラウザを直接呼び出すことができます. cola.分布型爬虫類のフレームワークです.プロジェクト全体の設計は少し悪く、モジュール間の結合度は高いが、参考に値する.
Beautiful SoupのWebページの解析は非常に簡単で乱暴です(requestsに合わせて)基本的な登りは問題ありません
このデータが王と呼ばれた時代、データがないのはコンテンツ製品にとって間違いなく足の半分を歩いていた.(これは恥ずかしいが、仕方がない.著作権のないコンテンツを公開する誘惑力が大きすぎて、人工的に仕事の量を取り出すのは複雑すぎる)
くだらないことは言わないで,薪を割く.
1.ライブラリのインストール beautifulsoup4 公式中国語ドキュメント requests 公式中国語ドキュメント 解析器 を取り付ける
ぶんせきき
使用方法
メリット
劣勢
Python標準ライブラリ
Pythonの内蔵標準ライブラリは、ドキュメントのフォールトトレランスに適した速度で実行できます.
Python 2.7.3 or 3.2.2)前のバージョンでは文書のフォールトトレランスが悪かった
lxml HTML解析器
高速ドキュメントのフォールトトレランス機能
C言語ライブラリのインストールが必要です
lxml XML解析器
速度が速くXMLを唯一サポートする解析器
C言語ライブラリのインストールが必要です
html5lib
最適なフォールトトレランスは、ドキュメントをブラウザで解析してHTML 5形式のドキュメントを生成します.
速度が遅い外部拡張に依存しない
2.具体的な手順
3.一般的な操作
以上の操作を熟知して简単にhtmlの纯粋なデータのホームページを登ることができて、あなたは持つ価値があります!
爬虫類はpythonと言わざるを得ない
よく使われるPython爬虫類庫(hunt zhanより抜粋)
Beautiful SoupのWebページの解析は非常に簡単で乱暴です(requestsに合わせて)基本的な登りは問題ありません
このデータが王と呼ばれた時代、データがないのはコンテンツ製品にとって間違いなく足の半分を歩いていた.(これは恥ずかしいが、仕方がない.著作権のないコンテンツを公開する誘惑力が大きすぎて、人工的に仕事の量を取り出すのは複雑すぎる)
くだらないことは言わないで,薪を割く.
1.ライブラリのインストール
pip install beautifulsoup4
pip install requests
pip install lxml
ぶんせきき
使用方法
メリット
劣勢
Python標準ライブラリ
BeautifulSoup(markup, "html.parser")
Pythonの内蔵標準ライブラリは、ドキュメントのフォールトトレランスに適した速度で実行できます.
Python 2.7.3 or 3.2.2)前のバージョンでは文書のフォールトトレランスが悪かった
lxml HTML解析器
BeautifulSoup(markup, "lxml")
高速ドキュメントのフォールトトレランス機能
C言語ライブラリのインストールが必要です
lxml XML解析器
BeautifulSoup(markup, ["lxml-xml"])``BeautifulSoup(markup, "xml")
速度が速くXMLを唯一サポートする解析器
C言語ライブラリのインストールが必要です
html5lib
BeautifulSoup(markup, "html5lib")
最適なフォールトトレランスは、ドキュメントをブラウザで解析してHTML 5形式のドキュメントを生成します.
速度が遅い外部拡張に依存しない
2.具体的な手順
st=>start: requests html
op1=>operation: beautifulsoup4 html
op2=>operation:
op3=>operation:
op4=>operation:
e=>end:
st->op1->op2->op3->op4->e
3.一般的な操作
# , lxml
soup = BeautifulSoup(html, 'lxml')
# class more
bp = soup.find_all(attrs={"class": 'more'})
#
bp = soup.main
# p
p = soup.find_all('p')
# ( data-number )
soup.find_all(attrs={"data-number": re.compile("^[0-9]*$")})
# main
as = soup.main.descendants
#
for child in as:
# tag( tag ,NavigableString )
if isinstance(child, Tag):
# span id id counter
if child.name == 'span' and 'id' in child.attrs and child['id'] == 'counter' and child.string:
#
# .contents .children
# tag .contents tag :
child.next_sibling.contents[0].string
#
for string in soup.main.stripped_strings:
print(string)
#
child.parent
# .next_sibling .previous_sibling
#
child['src']
以上の操作を熟知して简単にhtmlの纯粋なデータのホームページを登ることができて、あなたは持つ価値があります!