赞
踩
第一种解决方案是采用一些第三方的工具,模拟浏览器的行为,去加载数据。比如:Selenium
、PhantomJs
。
Selenium
,每次我们都需要去启动一个浏览器进程;配置繁琐,不同的浏览器需要下载不同的驱动以及jar包,并且驱动和jar包之间有严格版本匹配关系,如果不匹配就不能使用(至少本人因为版本匹配的关系,花了很大的时间)。第二种解决方案是分析页面,找到对应请求接口,直接获取数据。
本文首先会采用Selenium
进行第一种方式爬取CSDN评论模块的数据;然后采用第二种方式分析爬取CSDN评论模块的数据;另外,看网上一个很火的“爬取京东胸罩评论分析国人罩杯。。。”,我们就也尝试爬取“销量最高的胸罩的所有评论数据”。有福利=_+
Selenium
模拟浏览器获取动态网页数据 将下载的驱动放到谷歌浏览器的安装目录下,如下图
导入jar包,具体步骤不再详述。如下图
编写测试代码
- package com.wgyscsf.spider;
-
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.chrome.ChromeDriver;
-
- /**
- * @author 高远</n>
- * 编写日期 2016-11-13下午9:02:01</n>
- * 邮箱 wgyscsf@163.com</n>
- * 博客 http://blog.csdn.net/wgyscsf</n>
- * TODO</n>
- */
- public class SeleniumTest {
- public static void main(String[] args) {
- // 第一步: 设置chromedriver地址。一定要指定驱动的位置。
- System.setProperty("webdriver.chrome.driver",
- "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
- // 第二步:初始化驱动
- WebDriver driver = new ChromeDriver();
- // 第三步:获取目标网页
- driver.get("http://blog.csdn.net/wgyscsf/article/details/52835845");
- // 第四步:解析。以下就可以进行解了。使用webMagic、jsoup等进行必要的解析。
- System.out.println("Page title is: " + driver.getTitle());
- System.out.println("Page title is: " + driver.getPageSource());
- }
- }
分析页面地址:http://blog.csdn.net/wgyscsf/article/details/52835845
查看原网页源码,我们发现原网页有一条评论:“请问您,有爬好的数据集吗”。我们在网页源码页搜索,结果搜索不到(不要被迷惑了,那一条评论是最新评论列表中的数据,并不是文章详情的评论数据。):
Selenium
解析后的页面的数据,我们搜索可以搜索到文章详情的数据(不是最新评论的数据哦,是真正文章详情的评论数据。):
Chrome
浏览器进行演示),获取所需的API打开需要分析的网页:http://blog.csdn.net/wgyscsf/article/details/52835845
按F12,选择Network,刷新页面。如下图
这里我们就需要一个一个分析了,找到我们所需要的API。这里有一个技巧:我们可以采用Filter,如下图。进行信息过滤。
比如我们要分析获取评论信息,那么第一想法就是这个接口的命名可能就是Comment…。这样可以快速定位,找到我们需要的信息。
不负众望,我们真的找到了。看来我们的想法和CSDN的开发人员的想法一致:评论就应该用评论的英文commnet进行命名!
copy找到完整API地址:
这里我们就需要一个一个分析了,找到我们所需要的API。这里有一个技巧:我们可以采用Filter,如下图。进行信息过滤。
比如我们要分析获取评论信息,那么第一想法就是这个js的命名可能就是Comment…。这样可以快速定位,找到我们需要的信息。
不负众望,我们真的找到了。看来我们的想法和CSDN的开发人员的想法一致:评论就应该用评论的英文commnet进行命名!
copy找到完整API地址:https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv50&productId=10341817326&score=0&sortType=5&page=0&pageSize=10,该链接有福利=_+
https://github.com/scsfwgy/WebMagic_CSDN_Demo
点击获取
第一种解决方案是采用一些第三方的工具,模拟浏览器的行为,去加载数据。比如:Selenium
、PhantomJs
。
Selenium
,每次我们都需要去启动一个浏览器进程;配置繁琐,不同的浏览器需要下载不同的驱动以及jar包,并且驱动和jar包之间有严格版本匹配关系,如果不匹配就不能使用(至少本人因为版本匹配的关系,花了很大的时间)。第二种解决方案是分析页面,找到对应请求接口,直接获取数据。
本文首先会采用Selenium
进行第一种方式爬取CSDN评论模块的数据;然后采用第二种方式分析爬取CSDN评论模块的数据;另外,看网上一个很火的“爬取京东胸罩评论分析国人罩杯。。。”,我们就也尝试爬取“销量最高的胸罩的所有评论数据”。有福利=_+
Selenium
模拟浏览器获取动态网页数据 将下载的驱动放到谷歌浏览器的安装目录下,如下图
导入jar包,具体步骤不再详述。如下图
编写测试代码
- package com.wgyscsf.spider;
-
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.chrome.ChromeDriver;
-
- /**
- * @author 高远</n>
- * 编写日期 2016-11-13下午9:02:01</n>
- * 邮箱 wgyscsf@163.com</n>
- * 博客 http://blog.csdn.net/wgyscsf</n>
- * TODO</n>
- */
- public class SeleniumTest {
- public static void main(String[] args) {
- // 第一步: 设置chromedriver地址。一定要指定驱动的位置。
- System.setProperty("webdriver.chrome.driver",
- "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
- // 第二步:初始化驱动
- WebDriver driver = new ChromeDriver();
- // 第三步:获取目标网页
- driver.get("http://blog.csdn.net/wgyscsf/article/details/52835845");
- // 第四步:解析。以下就可以进行解了。使用webMagic、jsoup等进行必要的解析。
- System.out.println("Page title is: " + driver.getTitle());
- System.out.println("Page title is: " + driver.getPageSource());
- }
- }
分析页面地址:http://blog.csdn.net/wgyscsf/article/details/52835845
查看原网页源码,我们发现原网页有一条评论:“请问您,有爬好的数据集吗”。我们在网页源码页搜索,结果搜索不到(不要被迷惑了,那一条评论是最新评论列表中的数据,并不是文章详情的评论数据。):
Selenium
解析后的页面的数据,我们搜索可以搜索到文章详情的数据(不是最新评论的数据哦,是真正文章详情的评论数据。):
Chrome
浏览器进行演示),获取所需的API打开需要分析的网页:http://blog.csdn.net/wgyscsf/article/details/52835845
按F12,选择Network,刷新页面。如下图
这里我们就需要一个一个分析了,找到我们所需要的API。这里有一个技巧:我们可以采用Filter,如下图。进行信息过滤。
比如我们要分析获取评论信息,那么第一想法就是这个接口的命名可能就是Comment…。这样可以快速定位,找到我们需要的信息。
不负众望,我们真的找到了。看来我们的想法和CSDN的开发人员的想法一致:评论就应该用评论的英文commnet进行命名!
copy找到完整API地址:
这里我们就需要一个一个分析了,找到我们所需要的API。这里有一个技巧:我们可以采用Filter,如下图。进行信息过滤。
比如我们要分析获取评论信息,那么第一想法就是这个js的命名可能就是Comment…。这样可以快速定位,找到我们需要的信息。
不负众望,我们真的找到了。看来我们的想法和CSDN的开发人员的想法一致:评论就应该用评论的英文commnet进行命名!
copy找到完整API地址:https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv50&productId=10341817326&score=0&sortType=5&page=0&pageSize=10,该链接有福利=_+
https://github.com/scsfwgy/WebMagic_CSDN_Demo
点击获取
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。