爬虫類を学ぶために、簡単なfind_allのBeautifulSoup4()とselect()、

ウェブをクロール正規表現+ BeautifulSoupが少ないと、より行うことができます。

:URLであなたの手を試してみてくださいBaiduのポストバーを取るhttps://tieba.baidu.com/index.html

 

1.find_all():現在のノードのすべての子ノード、ノードの孫を検索します。

次の例では、find_all()マッチがそれを貼り付ける分類モジュール、リンクのhref語の「エンターテインメント」とのリンクです。

BS4のインポートBeautifulSoup
 から urllib.request インポートurlopen
 インポート

F = urlopen(' https://tieba.baidu.com/index.html ' ).read()
スープ = BeautifulSoup(F、' html.parser ' 

のためのリンク soup.find_all(' A '、HREF = re.compile(' 娱乐' )):
     プリント(link.get(' タイトル')+ ' ' + link.get('href "))
結果:
Entertainment AVスター:?/ F /インデックス/ forumpark PCN =芸能人&PCI = 0&CT = 1 &RN = 20&のpn = 1 
香港と東南アジアスター:?/ F /インデックス/ forumpark CN =香港と東南アジアスター&CI = 0&PCN =芸能人&PCI = 0&CT = 1&RN = 20&のpn = 1 
本土星: / F /インデックス/ forumpark CN =本土のスター&CI = 0&PCN =芸能人&PCI = 0&CT = 1 &RN = 20&のpn = 1? 
韓国語:?/ F /インデックス/ forumpark CN =韓国星&CI = 0&PCN =芸能人&PCI = 0&CT = 1 &RN = 20&のpn = 1 
日本のスター:?/ F /インデックス/ forumpark CN =日本&CI = 0&PCN =芸能人&PCI = 0&CT = 1 &RN = 20&のpn = 1つの
ファッションフィギュア: / F ?/インデックス/ forumpark CN =ファッションフィギュア&CI = 0&PCN =芸能人&PCI = 0&CT = 1 &RN = 20&のpn = 1 
ヨーロッパやアメリカの星:?/ F /インデックス/ forumpark CN =ヨーロッパやアメリカの星&CI = 0&= PCN芸能人&PCI = 0&CT = 1 &RN = 20&PN = 1 
モデレーター: / F /インデックス/ CN =ホスト&forumpark?CI = 0&PCN =芸能人&PCI = 0&CT = 1 &RN = 20&のpn = 1 
その他のエンターテイメントの星:?/ F /インデックス/ forumpark CN =他の芸能人&CI = 0&PCN =芸能人&PCI = 0&CT = 1 &RN = 20&PN = 1
soup.find_all( 'A'、HREF = re.compile( ' エンターテイメント' ))スープ(( 'エンターテイメント') 'A'、HREF =に相当する re.compile) 
上記の例ではなく、スープも使用することができます。

2.必要な選択()ループコンテンツを使用します。

**タブで検索htmlページへのHREFの先頭に「/ F /インデックス」:

 LINK2  soup.select(' [HREF ^ = "/ F /インデックス"] ' :)
     プリント(link2.get(' タイトル')+ ' ' + link2.get(' のhref '))

** htmlタグで検索のページ「&PN = 1」HREFエンディング:
以下のためのリンク2  soup.select(' [のhref $ = "&PN = 1"] ' :)
     プリント(link2.get(' タイトル')+ ' ' + link2.get(' HREF '))

** HREFタグで「娯楽」と検索htmlページ:
 LINK3  soup.select(' [HREF * = "娱乐"] ' :)
     プリント(link3.get(' タイトル')+ ' ' + link3.get(' のhref '))

 

おすすめ

転載: www.cnblogs.com/suancaipaofan/p/11786046.html