Beautiful Soup Python スクレイピング

【Python】スクレイピングしたhtmlから特定の要素以降のデータを削除する

この記事は約2分で読めます。

 

こんにちは、ミナピピン(@python_mllover)です。requestsとbeautifulsoupでスクレイピングしていると取得したHTMLの中で、アフィリエイト広告など特定の文字列以降いらねぇって場合があると思います。

 

beautifulsoupにも特定の要素だけをピンポイントで削除するdiscompose()がありますが、こういったニーズとは少し違います。そんな時にどうすればいいのか、という話ですが結論からいくとsoupを文字列に変換してstr型のデフォルト機能であるstr.splitメソッドで特定の文字以降を削除するというのが簡単だと思います。

 

スポンサーリンク
スポンサーリンク

str.splitメソッドで特定の文字以降を削除する

 

イメージとしてはこんな使いかたです。

 

import requests
from bs4 import BeautifulSoup

r = requests.get('http://~~~~')
soup = BeautifulSoup(r.content, 'html_parser')

# スクレイピングした記事のテキストの中にh4タグのプロモーションが含まれている場合それ以降を削除する
str(soup).split('<h4>プロモーション</h4>')[0]

 

beautufulsoupの型はstr()で文字列に変換できます。文字列からsoupに戻すのはエンコード関連でめんどくさいのでこの処理は最後にやるのが無難だと思います。では~

 

 

 

参考:https://www.relief.jp/docs/python-get-string-before-specific-character.html

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました