javascript - nodejs抓取网页的问题
问题描述
我准备抓用nodejs抓取下面这个网站的所有新闻, 按照一般的思路,是首先取得每页新闻的URL,然后取得每个新闻的URL按照使用request把每个网址的内容取下来就OK了.
但是下面的这个网址的所有分页信息, 还有每个新闻点击进去URL都没有任何变化, 貌似都是在后台通过js实现的.用chrome的F12的newwork的tab也查看不到有什么请求,有哪位大神能指导一下我怎么来抓取吗?
http://www.xxxxxxxxx.com/glob...
问题解答
回答1:1.从上一篇与下一篇的地方可以看到,click绑定的函数:boardView(1);
2.通过boadrview在页面中找到对应的函数:
function boardView(idx){ var listNum = 10; // 목록 수 지정 var resultLenplistNum = Math.floor(idx/listNum); // 결과 나누기 목록수 var resultLenRestlistNum = Math.floor(idx%listNum); // 결과 나머지 목록수 if (resultLenRestlistNum == 0){ pageNum = resultLenplistNum; } else { pageNum = resultLenplistNum + 1; } cmsView.style.display = ’block’; cmsList.style.display = ’none’; resultViewStr = ’<p class='news_view'><p class='news_hd'>’; resultViewStr = resultViewStr + ’<strong>’+list.artCatTitles[resultSearch[idx]] +’</strong>’; resultViewStr = resultViewStr + ’<p>’+list.artTitles[resultSearch[idx]]+’</p>’; resultViewStr = resultViewStr + ’<span>’+list.artTimes[resultSearch[idx]]+’</span></p>’; resultViewStr = resultViewStr + ’<p class='news_bd'>’+list.artTexts[resultSearch[idx]]; resultViewStr = resultViewStr + list.artFiles[resultSearch[idx]]+’</p>’; resultViewStr = resultViewStr + ’<p class='news_link'><ul>’; resultViewStr = resultViewStr + ’<li><strong><span></span>’;
.........
3.看到数据来自于list这个变量,再寻找list
4.在1739行看到:
var artId = '';var catId = 'se14_24';var tplId = '';list = new jsList();list.cmsInit(catId, artId, tplId, new data()); // list 객체 생성
5.调用了一个构造函数:jsList()找到相应的代码在这里:http://www.samsungsem.com/js/...
6 看回第2步的代码:list.artTitles-->这些数据是通过jsList的cmsInit方法设置的,而cmsInit中:
function cmsInit(catId, artId, tplId, data) { this.artIds = data.artIds; this.artCatTitles = data.artCatTitles; this.artTitles = data.artTitles; this.artUrls = data.artUrls; this.artTimes = data.artTimes; this.artImgs = data.artImgs; this.artTexts = data.artTexts; this.artTexts2 = data.artTexts2; this.artKeywords = data.artKeywords; this.artFiles = data.artFiles;
...的数据来自第四个参数data
7.再看第4步的传的data是new data()于是,我们找到data这个函数定义的地方。往上找,找到了:<script src='https://www.haobala.com/global/news/data.js.jsp'></script>
8.打开后看一下:http://www.samsungsem.com/glo... 好奇怪的感觉,怎么样式那么奇怪?
再右键查看源代码:view-source:http://www.samsungsem.com/glo...可以看到data函数是在这里定义的,而你看到的数据也在这个页面里。
回答2:多谢回答,我先去看看去.....
基本看明白了,还有一点不是很懂的地方再慢慢去看,多谢了..
相关文章:
1. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????2. 在应用配置文件 app.php 中找不到’route_check_cache’配置项3. javascript - vue-cli与后端框架集成config/index.js配置问题4. 关于layuiadmin中表格按钮提交问题求解!!!!5. javascript - 为什么我无法通过$stateParams在父子State之间传递参数?跟State之间的父子关系有关吗?6. javascript - 关于mongose删除一次多个字段的问题7. javascript - 使用reaaft route 报错8. 微信浏览器怎么取消缓存?9. html按键开关如何提交我想需要的值到数据库10. html5 - 在微信上扫二维码看到有趣的h5页面,怎样才可以看到它的代码呢?
