Javascript 使用Apify';木偶爬虫 (*)情况:
你好 我想刮,我开发一个城市,它将为我提供该城市的所有酒店。 例如,它的结果将为我们提供1200多家酒店,因此我想搜集有关这些酒店的所有信息 我使用了Apify的木偶爬虫,在开始url中,我将url放在第一页。 在链接选择器中,我将选择器置于“酒店详细信息”页面 这是我在页面功能中输入的内容: 异步函数页面函数(上下文){ const{request,log,skiplings,page}=context; //request.userData=列表链接; if(request.userData.label=='START'){ log.info('storeopened!'); } if(request.userData.label==='DETAIL'){ const{url}=请求; log.info(`Scraping${url}`); 等待Skiplings(); 常数标题=第页$eval( “头衔”, (el=>el.textContent) ); 常数价格=第页$eval( “第JGa7fd部分”, (el=>el.getAttribute('aria-label')) ); const ratingP=第页$eval( “div.iDqPh.BgYkof”, (el=>el.textContent) ); const reviewsNumberP=第页$eval( “a.eS7K5e”, (el=>el.textContent) ); const hotelStarP=第页$eval( “div.fnmyY>span.CFH2De”, (el=>el.textContent) ); 常量adressP=第页$$eval( “第K4nuhf部分跨度CFH2De”, (els)=>els[0]。文本内容 ); const phoneP=第页$$eval( “第K4nuhf部分跨度CFH2De”, (els)=>els[2]。文本内容 ); const websiteP=第页$$eval( “a.FKF6mc.TpQm9d”, (els)=>els[0]。getAttribute('href') ); 常数[ 标题 价格, 评级 评论编号, 地址, 电话, hotelStar酒店, 网站, ]等待承诺([ 标题, 普莱斯, 评级, 回顾, 阿雷斯普, phoneP, 塔普酒店, 网站, ]); 返回{ 标题 价格, 评级 评论编号, 地址, 电话, hotelStar酒店, 网站, }; }Javascript 使用Apify';木偶爬虫 (*)情况:,javascript,jquery,puppeteer,cheerio,apify,Javascript,Jquery,Puppeteer,Cheerio,Apify,你好 我想刮,我开发一个城市,它将为我提供该城市的所有酒店。 例如,它的结果将为我们提供1200多家酒店,因此我想搜集有关这些酒店的所有信息 我使用了Apify的木偶爬虫,在开始url中,我将url放在第一页。 在链接选择器中,我将选择器置于“酒店详细信息”页面 这是我在页面功能中输入的内容: 异步函数页面函数(上下文){ const{request,log,skiplings,page}=context; //request.userData=列表链接; if(request.userDat
}我不会告诉你成功刮取的所有细节,但会给你一些提示 a) 正确的名字很重要。在本例中,您正在使用。这是一个独立的演员。是SDK(JS库)中的一个类 b) 链接选择器不会单击,它需要查找HREF(真实链接)。所以它在这个用例中不起作用 c) 在本例中,我建议使用PuppeterCrawler类创建一个新的演员(参见网站中的示例) 现在回答您的问题:
木偶师
包我不会给你所有的细节,为刮成功,但会给你一些提示 a) 正确的名字很重要。在本例中,您正在使用。这是一个独立的演员。是SDK(JS库)中的一个类 b) 链接选择器不会单击,它需要查找HREF(真实链接)。所以它在这个用例中不起作用 c) 在本例中,我建议使用PuppeterCrawler类创建一个新的演员(参见网站中的示例) 现在回答您的问题:
木偶师
包非常感谢你的回复。事实上,我尝试使用enqueueLinksByClickingElements()方法,但没有成功,我选择了正确的选择器,但没有任何好的答案。我可以使用pptr方法(page.url(),page.click())然后编写一个函数,并将其与enqueueLinksByClickingElements()方法交换吗,或者我不得不使用这种方法?如果它因任何原因不起作用,我可能会将它与page.click()放在一个页面上。当然,您可以自己重新实现所有功能。非常感谢您的回复。事实上,我尝试使用enqueueLinksByClickingElements()方法,但没有成功,我选择了正确的选择器,但没有任何好的答案。我可以使用pptr方法(page.url(),page.click())然后编写一个函数,并将其与enqueueLinksByClickingElements()方法交换吗,或者我不得不使用这种方法?如果它因任何原因不起作用,我可能会将它与page.click()放在一个页面上。当然,您可以自己重新实现所有功能。