我想网上抓几个网站,显然是用JavaScript渲染的。具体而言,我想定位此网站:http://cve.mitre.org/find/index.html
这是我的代码:
$client = new Client();
$crawler = $client->request('GET', 'http://cve.mitre.org/find/index.html');
$form = $crawler->selectButton('Search')->form();
$crawler = $client->submit($form, array('search' => 'Symphony'));
print $crawler->html();
如果我查看源代码,我看不到HTML,因为这个请求是由JavaScript完成的,那么,有没有人知道如何抓取这些类型的网站?
答案 0 :(得分:2)
这个网站已经加入了一个懒惰的Google自定义搜索网站#34;而不是实现自己的,这意味着该网站带有各种JavaScript cruft。
看起来实际搜索可能是通过传统的表单提交完成的,您只需要使用Google呈现的元素发布到表单。但是,它可能并不那么容易,因为谷歌可能会检查引用等等,并且无论如何都要阻止它。
我认为你有几个选择:
domain:cve.mitre.org
直接抓取Google 答案 1 :(得分:0)
这是一个非常相似的问题的链接。长话短说,你需要一个支持javascript的无头浏览器: