BeautifulSoup - 文字化けせずにパースする方法

2018-09-06 10:45:00 2227

  • Python 3.6
  • だいたいいつも悩まされるのが、文字化け。日本語使ってるとシャーない宿命です。

    こちらもっぱらBeautifulsoupをつかってウェブサイトをクローリングしてますが、やはり時々めっちゃくちゃに文字化けしてスープが帰ってきたりします。 そして、

    ググると必ずPhython2系の情報だったり、人によってパースの仕方が違ったり、ライブラリが違ったり、じゃあ一体どれを使えばいいのか 。

    ということで、至った結論が以下。urllib.requestもurllib2もullib3もつかいません。

    requestsを使う

    さらに、パーサーは、html.parserを使うことをおすすめします。速度の面で他とは劣る部分があるかもしれませんが、今の所確実に文字化けせずに変換してくれる。

    scraping.py

    import requests
    from bs4 import BeautifulSoup
    html = requests.get(news_url)
    soup = BeautifulSoup(html.content,'html.parser')

    パースの仕方

    'html.parser'
    'html5lib'
    'lxml'

    関連記事