Python - beautifulSoup4 .select('.bnrName') がテキスト text を取得できません
伊谢尔伦
伊谢尔伦 2017-05-18 10:45:48
0
4
789

背景:
Python3 で bs4 の select を使用して、ZOZO ホームページの上部にあるクーポン情報の店舗名を取得します。 (国内IPではクーポン情報が見れないようです。スクロールしないと見れません。島国のIPを使うのがベストです)

質問:
店舗名がどこに書いてあるのかわかりません。取得方法がわかりません。フロントエンドのjsがわかりません。回答をお願いします。ありがとう。

私自身のコードは次のとおりです:

リーリー

次のスクリーンショットは、取得するテキストを示しています。

ソース コードにテキストが存在しないことがわかりました。

リーリー

彼のテキストが実装されている場所と、それを表示するための bs4 select の使用方法を教えてください。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(4)
大家讲道理

ajaxを使ってサーバーから取得し、domを操作して動的に追加することも可能で、ブラウザ上でjsを実行するとテキストも追加されます。クローラーでクロールしたときは該当するjsを実行しなかったため、テキストを追加しませんでした。

これが本当に当てはまる場合は、ブラウザの f12 でネットワークを確認し、テキストを取得するための http リクエストの URL を見つけて、この URL を直接リクエストして必要な情報を取得できます。

いいねを押す +0
習慣沉默

ソースコードを見るためにブラウザで http://zozo.jp/ を開いたのですが、探している bnrName が見つかりませんでした

いいねを押す +0
小葫芦

これをクロールしたい場合は、ブラウザを右クリックして「Web ページのソース コードを表示」してテキストが見つかるかどうかを確認します。見つからない場合は、Web ページが js または ajax を使用して動的に読み込まれる必要があります。動的ページのようなものなので、そうする必要があります。リクエストを自分で手動でシミュレートするか、Selenium を使用してリクエストをキャッチするか、他に方法はありません

いいねを押す +0
小葫芦

確かにjsで生成されており、ヘッドレスブラウザを使用してキャプチャされています。皆さんありがとうございます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート