4

結果を取得するときに無限スクロールのあるページをダウンロードしようとしています。ajaxソースのURLを見つけました。ブラウザに置くと正常に動作し、json形式のデータを返します。しかし、wget を使用してページをダウンロードしようとすると、アクセス拒否メッセージが表示されます。なぜこれが起こっているのか分かりますか?

私が使用しているコマンドは次のとおりです。

wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --user-agent=Firefox \
    "https://www.somesite.com/ajax/pagelet/generic.php/pagination?data={"collection_token":"...","cursor":"...","tab_key":"....","profile_id":"...","overview":"...","ftid":"null","sk":"..."}&__user=...&__a=1"
4

3 に答える 3

1

方法は 2 つあります。

1 つは、PhantomJs などのライブラリを使用して webkit でページの DOM ツリーをレンダリングし、評価を行う前にページをスクロールすることです。

2番目の方法は、バックグラウンドのAjax呼び出しでパターンを見つけて、実際のAJAXエンドポイントを呼び出すことです

于 2013-11-29T10:15:50.523 に答える
0

1 つには、引用の問題があります。URL には二重引用符が含まれているため、バックスラッシュでエスケープするか、URL を一重引用符で囲む必要があります。

wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --user-agent=Firefox \
    'https://www.somesite.com/ajax/pagelet/generic.php/pagination?data={"collection_token":"...","cursor":"...","tab_key":"....","profile_id":"...","overview":"...","ftid":"null","sk":"..."}&__user=...&__a=1'
于 2013-04-01T18:23:53.360 に答える
-1

wget を使用する場合、ページに GET リクエストを送信していますが、AJAX は POST リクエストを使用します。Python を使用しているため、 urllib2を使用して POST リクエストを作成すると、通常はうまくいきます。さらにサポートが必要な場合はお知らせください。

于 2013-04-01T18:25:44.463 に答える