Web スクレイピングにBeautifulSoupを使用していますが、特定のタイプの Web サイトでurlopenを使用すると問題が発生します。ウェブサイトのすべてのアイテムには独自のページがあり、アイテムはさまざまな形式 (例: 500 mL、1L、2L、... ) で提供されます。
インターネット ブラウザを使用して製品の URL ( www.example.com/product1 ) を開くと、500 mL フォーマットの写真、それに関する情報 (価格、数量、フレーバーなど)、および製品のリストが表示されます。この特定のアイテムで利用可能な他のすべての形式。別の形式 (例: 1L ) をクリックすると、画像とアイテムに関する情報が変更されますが、ブラウザーの上部にある URL は同じままです ( www.example.com/product1 )。ただし、ページの HTML コードを調べると、すべての形式に固有の URL があることがわかります ( 500 mL : www.example.com/product1/123; 1L : www.example.com/product1/456, ...)。インターネット ブラウザで 1L 形式の固有の URL を使用すると、自動的にページwww.example.com/product1にリダイレクトされますが、ページに表示される画像と情報は 1L 形式に対応しています。HTML コードには、1L 形式について必要な情報も含まれています。
urlopenを使用してこれらの一意の URL を開くと、問題が発生します。
from bs4 import BeautifulSoup
from urllib import urlopen
webpage = urlopen('www.example.com/product1/456')
soup=BeautifulSoup(webpage)
print soup
スープに含まれる情報は、インターネット ブラウザを使用して固有の URL www.example.com/product1/456で表示される情報とは一致しません。www.example.com/product1にデフォルトで表示される項目フォーマットに関する情報が表示されます。これは常に 500 mL フォーマットです。
このリダイレクトを防止して、固有の URL の HTML コードに含まれる情報を BeautifulSoup で取得できるようにする方法はありますか?