前提
PYTHON初心者です。
スクレイピングを用いてWEBページから情報を抽出できればと考えております。
実現したいこと
AmazonのようなECモールより特定の商品のレビューを抽出したいと考えております。
ネットに転がっているページを参考にし、レビューのテキストを拾う下記のようなコードができました。
下記のURLでトライしており特にエラーはないのですがレビューレートや日にちなどを中々抜き出せず苦闘しております。
もしよろしければアドバイス頂けますでしょうか。
URL:https://www.amazon.co.jp//dp/B07XDX4QDH
該当のソースコード
def get_amazon_page_info(url): text = "" options.add_argument('--incognito') browser = webdriver.Chrome(ChromeDriverManager().install(), options=options) browser.get(url) browser.implicitly_wait(20) text = browser.page_source browser.quit() return text def get_all_reviews(url): review_list = [] i = 1 while True: print(i,'page_search') i += 1 text = get_amazon_page_info(url) amazon_bs = BeautifulSoup(text, features='lxml') reviews = amazon_bs.select('.review-text') for review in reviews: review_list.append(review) next_page = amazon_bs.select('li.a-last a') if next_page != []: next_url = 'https://www.amazon.co.jp/' + next_page[0].attrs['href'] url = next_url sleep(2) else: break return review_list return review_list if __name__ == '__main__': url = "該当のURL" review_url = url.replace('dp', 'product-reviews') review_list = get_all_reviews(review_url) review_list
試したこと
恐らく、def get_all_reviews(url) のreviews = amazon_bs.select('.review-text')で取得する情報をしているような仕組みになっているかと思います。
bs.selectで指定する要素をレート部分である('span', class_='a-icon-alt')に変更したりしてみたのですが、エラーは出ないもののエクセルなどに抽出してみると内容は空というような状況です。
もしよろしければアドバイスお願い致します
あなたの回答
tips
プレビュー