我在刮取一页以上的数据时遇到了问题。在启动控制台中,我设法获得了2-3页的HTML内容。在第一个循环的Lua脚本中,当我定义一次迭代以提取一页时,我得到50个网址。如果进行2次或更多次迭代,则不会返回任何数据。 在控制台中,我得到:
ThreadPoolTaskExecutor
或
Ignoring response <504 https://shopee.sg/search?keyword=hdmi>: HTTP status code is not handled or not allowed
这是我的代码
504 Gateway Time-out
答案 0 :(得分:1)
我认为您由于lua脚本而收到超时错误。当您从蜘蛛网发出请求时,开始接收响应的时间。在lua脚本中,您具有以下内容:
两次运行js进行滚动,这需要一些时间
两次调用函数splash:wait(5.0)
用于下载和呈现一些数据
然后,您致电assert(splash:wait(8.0))
最终最短时间:
(3 * 8)+(2 * 5)+运行splash:runjs
的时间和其他一些事情
但是在您的情况下,不需要Splash。您可以直接从蜘蛛请求下一页。 Chrome-> Dev工具->网络-> XHR,您将在其中找到请求网址https://shopee.sg/api/v2/search_items/?by=relevancy&keyword=hdmi&limit=50&newest=250&order=desc&page_type=search
然后,您可以使用它来获取所需的所有信息。在您的情况下,它是产品的URL,但是没有直接的url,因此您必须对名称加以暗示。例如,从[Spot is sold very well]Micro USB para HDMI Adaptador MHL para HDMI 1080 P
到-Spot-is-sold-very-well-Micro-USB-para-HDMI-Adaptador-MHL-para-HDMI-1080-P-HD-TV-
并添加2个ID:shopid
,itemid
,您会发现名称之间存在差异-但这是可行的