前提・実現したいこと
Pythonでスクレイピングをしているのですが、取得したデータが文字化けしてしまいます。どうすれば良いでしょうか。
発生している問題・エラーメッセージ
{'url': 'https://db.netkeiba.com/race/201906010111/', 'title': 'Âè68²óÆü´©¥¹¥Ý¾ÞÃ滳¶âÇÕ(G3)', 'race data': '¼Ç±¦2000m\xa0/\xa0Å·¸õ : À²\xa0/\xa0¼Ç : ÎÉ\xa0/\xa0ȯÁö : 15:35', 'chaku': '1'}
該当のソースコード
from typing import Iterator import time import re import requests import lxml.html def main(): session = requests.Session() response = requests.get('https://db.netkeiba.com/?pid=race_list&word=%C6%FC%B4%A9%A5%B9%A5%DD%A1%BC%A5%C4%BE%DE%C3%E6%BB%B3%B6%E2%C7%D5') urls = scrape_list_page(response) for url in urls: time.sleep(1) response = session.get(url) edata = scrape_detail_page(response) print(edata) break def scrape_list_page(response: requests.Response) -> Iterator[str]: html = lxml.html.fromstring(response.text) html.make_links_absolute(response.url) for a in html.cssselect('a[title*="(G3)"]'): url = a.get('href') yield url def scrape_detail_page(response: requests.Response) -> dict: html = lxml.html.fromstring(response.text) edata = { 'url' : response.url, 'title' : html.cssselect('dl.racedata.fc h1')[0].text_content(), 'race data' : html.cssselect('dl.racedata.fc span')[0].text_content(), } return edata if __name__ == '__main__': main()
試したこと
response.encoding = response.apparent_encodingは試しましたが、同じ結果が出力されました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/10/16 09:48