1

私が抱えている問題は、このページから関連リンクを取得したいということです: http://support.apple.com/kb/TS1538

Chrome または Safari で Element を調べる<div id="outer_related_articles">と、すべての記事が一覧表示されます。BeautifulSoup で取得しようとすると、ページと関連記事以外のすべてが取得されます。

これが私がこれまでに持っているものです:

import urllib2
from bs4 import BeautifulSoup
url = "http://support.apple.com/kb/TS1538"
response = urllib2.urlopen(url)
soup = BeautifulSoup(response.read())
print soup
4

2 に答える 2

4

このセクションは Javascript を使用して読み込まれます。ブラウザの Javascript を無効にして、ページがどのようにBeautifulSoup「見える」かを確認してください。

ここから、次の 2 つのオプションがあります。

  • Javascript を実行するヘッドレス ブラウザを使用します。これに関するこの質問を参照してください: Python 用のヘッドレス ブラウザ (Javascript のサポートが必要です!)
  • Apple サイトがコンテンツをどのようにロードしてシミュレートするかを試してみてください。おそらく、何らかのアドレスへの AJAX 呼び出しを実行します。

掘り下げた後、このアドレスにリクエストを送信しているようです(http://km.support.apple.com/kb/index?page=kmdata&requestid=2&query=iOS%3A%20Device%20not%20recognized%20in%20iTunes%20for %20Windows&locale=en_US&src=support_site.related_articles.TS1538&excludeids=TS1538&callback=KmLoader.receiveSuccess ) を使用し、JSONP を使用しKmLoader.receiveSuccessて、受信関数の名前で結果を読み込みます。Chrome 開発ツールの Firebug を使用して、ページをより詳細に調べます。

于 2013-04-07T19:38:32.767 に答える