2017-08-27 101 views
1

我试图抓取产品视频链接(它是由另一个Web服务动态生成的,位置在左侧的产品图像下)。您可以查看以下链接, https://www.tokopedia.com/chocoapple/ready-stock-bnib-iphone-128gb-7-plus-jet-black-garansi-apple-1-tahun-10?src=topads 谷歌浏览器“检查元素”显示div标签。但是相同的标签不存在于页面源代码中。 如何做到这一点?我正在研究goQuery来执行任务,但不知道它会不会起作用。我不是网络开发人员,所以如果我的问题描述不具体,请考虑提供建议。 谢谢。GoLang刮板。如何在网站上动态生成链接?

回答

2

如果标签不在源代码中,那么GoQuery将不起作用。 GoQuery用于使用类似jQuery的API来解析HTML源代码。

您需要首先使用无头像WebKit处理网页,如phantomjs,chromelesspuppeteer。这些工具中的每一个将允许您在处理之前处理网页上的所有Javascript。这样,用于呈现您感兴趣的视频的AJAX将被处理并且源将被更新。然后你可以下载相应的应该有div的源代码。

+0

值得要注意,你也可以使用nitghmarejs https://github.com/segmentio/nightmare –

+0

@schollz用无头WebKit处理网页,是标准方式吗?此外,它在性能方面是否会大规模运作? –

+0

@yogesh_desai据我所知,这是标准的方式。无头Webkit利用浏览器来进行渲染,我不知道另一种方式来做到这一点。至于性能扩展,您可能会考虑使用无法实现的功能,这可能会让您通过AWS Lambda – schollz

1

请在下标签找到<img class="thumbnail-img horizontal" src="//i.ytimg.com/vi/oKR2fh09Nic/mqdefault.jpg">。正如你看到src包含ID“oKR2fh09Nic”。这是需要路径https://www.youtube.com/watch?v=oKR2fh09Nic

此外,您可以使用http://youtube.com/get_video_info?video_id= oKR2fh09Nic加载视频信息。

例这里https://github.com/kkdai/youtube/blob/master/youtube.go

+0

它可以用于多个视频吗?作为链接,我共享了4个视频。另外,当你说找到下一个标签是什么意思? –

+0

你提到的标签

1

你可能需要像一个浏览器来评价页面。正如schollz回答的那样,这可以通过所谓的无头浏览器(浏览器可通过cli或api使用,而不显示它们的gui)。

在围棋天地有在世界上的NodeJS chromedp

https://github.com/knq/chromedp

https://www.youtube.com/watch?v=_7pWCg94sKw

+0

谢谢,我一定会检查一下并试一试。另外,请对我的评论schollz的答案,并提供更多的细节。 –

+0

要评估,是否需要通过chromedp加载页面?我将如何获取页面的更新源? chromedp的哪些功能对我有用?任何想法? –