前提・実現したいこと
https://teratail.com/questions/151351を参考に、公式サイトから車の名前や関連情報をスクレイピングしたいです。アウトプットイメージとしては以下の通りです。
フィット コンパクト ハイブリッド/ガソリン ¥1,428,840~ FF/4WD
5列×データ数分
問題
① HTTP Error 403: Forbiddenについて
import csv
import urllib
from bs4 import BeautifulSoup
取得先URL
url = 'https://www.honda.co.jp/auto-lineup/'
html = urllib.request.urlopen(url).read()# ①のエラーです。
soup = BeautifulSoup(html, 'html.parser')
このエラーの納得のいく回答が得られませんでした。
これはどのようなときに出るエラーでどのように回避するのがベストプラクティスなのでしょうか。
② soup.select()の中身がうまく対応しない。
一旦、Firefoxに偽装するとアクセス出来るという記事を見たので
url = "http://www.thebestschools.org/features/richest-universities-endowments-generosity-research/"
headers = {
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0",
}
上記をコードに噛ませ、div.list-item-wrapperに対応させてHPのElementsからlineup-result-articleを指定しましたが、soup.select('div.list-item-wrapper')では中身が存在しますがsoup.select('lineup-result-article')では中身が存在しません。
この辺りを色々と調べているうちにcssの選択の方法や、上記サイトに応用する方法のイメージが湧かなくなってしまっています。
環境
windows
python3.6.5
(anacondaにて構築)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。