私はスプラッシュを使用したスクリーニングを検討していますが、電子商取引サイトgapのいずれかのproductid、名前、価格のすべての製品(パンツ)私はスプラッシュウェブUI splash web UIから見たとき、私は(唯一の16項目は、リクエストごとにかかわらず、ロードされている - 見当もつかない理由)すべての動的製品データがロードされて表示されませんでした 私は、次のオプションを試してみましたが、運スクラップ+スプラッシュ:フルページのJavaScriptデータをレンダリングしない
- 待ち時間を20秒まで増やす
- ドッカーを「--disable-pr」で開始するとivateモード「
- ビューレポートフルオプションで
- スプラッシュスクロールページのlua_scriptを使用することにより:誰でもいくつかの光を当てるてくださいすることができ
lua_script2 = """ function main(splash)
local num_scrolls = 10
local scroll_delay = 2.0
local scroll_to = splash:jsfunc("window.scrollTo")
local get_body_height = splash:jsfunc(
"function() {return document.body.scrollHeight;}"
)
assert(splash:go(splash.args.url))
splash:wait(splash.args.wait)
for _ = 1, num_scrolls do
scroll_to(0, get_body_height())
splash:wait(scroll_delay)
end
return splash:html()
end"""
yield SplashRequest(
url,
self.parse_product_contents,
endpoint='execute',
args={
'lua_source': lua_script2,
'wait': 5,
}
)
set_viewport_fullを()この行動について? ps:私はscrapyフレームワークを使用しており、render.htmlから商品情報(itemid、name、price)を解析することができます(ただし、render.htmlには16個の情報しかありません)
それを閉じるためのコードを追加したサブスクライブするときにのみ問題がでしたか? "http://www.gap.com/resources/productSearch/v1/search?cid=80799" –
こんにちはタルン、返事をありがとう。しかし、私の目標は、サイトに掲載されている各製品(例えばここではそれぞれのパンツ)にクロールして、すべてのSkusを入手できるようにすることです(例えば、このパンツはビューソース[link] http://www.gap.com/browse/product.do?cid=80868&pcid=80799&vid=1&pid=844309052)私はapiを通して見つけられませんでした。私はこのapiアプローチを新しくしました。あなたはいくつかの情報を教えてください。 – Tez
** splash:set_viewport_full()**を使用しようとしましたが、運が悪く、 のようにscrpayで試してみました** splashRequest(url、self.parse_product_contents、args = {'wait':10、 'viewport': 'full' 'render_all':1}、エンドポイント= 'render.html')** まだ運 しかし、私は、ビュー・レポート・サイズ大きな寸法 'スプラッシュ設定すると:私が見たset_viewport_size(1980、8020)' をコンテンロードされましたが、依然として制限があります。'ビューポートが範囲外です(20000x20000、エリア= 16000000)。 – Tez