javascript - nodejs抓取網(wǎng)站的翻頁判斷和言語判斷問題.
問題描述
網(wǎng)址 http://www.everlight.com/news...兩個問題 1 : 怎么取得每頁的url2 是 點開新聞的內(nèi)容, 比如 http://www.everlight.com/news...如果是英文的操作系統(tǒng),顯示的是英語新聞,如果是中文系統(tǒng),則顯示中文新聞,我想在node里面固定抓取英文新聞,怎么處理.
問題解答
回答1:問題關(guān)閉...
在post的時候,form里面有幾個關(guān)鍵性的數(shù)據(jù),是放在也沒的hidden變量里面,指定了這些變量應(yīng)該就能解決.
回答2:右上角有個切換語言的,看一下代碼,是調(diào)用了這個函數(shù):function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit();}
}
其實就是提交了一下表單,而表單是有post的方式發(fā)送的原頁面所以,你點擊后會看到頁面有閃一下,但網(wǎng)址并沒有變化。所以,如果你要英文版的,post方式傳參數(shù):__EVENTTARGET='ctl00$ctl00$lBtnUSA'過去就可以獲得英文版的頁面。
獲取頁面內(nèi)的url,去解析dom就行了。
獲取頁面中的url的方法:
var jsdom = require('jsdom'); jsdom.env({ url: 'http://www.everlight.com/newsdetail.aspx?pcseq=4&cseq=7&seq=291', scripts: ['http://code.jquery.com/jquery.js'], done: function (err, window) { var $ = window.$; console.log('HN Links'); $('a').each(function() { //console.log(' -', $(this).text()); var tmp=$(this).text()+'---'+$(this).attr('href'); console.log(tmp); }); }});回答3:
這個還是分析一下request 中的header信息吧,里面有一項是可以利用設(shè)置語言的
相關(guān)文章:
1. 數(shù)據(jù)庫 - mysql如何處理數(shù)據(jù)變化中的事務(wù)?2. mysql - 怎么生成這個sql表?3. javascript - JS如何取對稱范圍的隨機數(shù)?4. java - ehcache緩存用的是虛擬機內(nèi)存么?5. 關(guān)于docker下的nginx壓力測試6. dockerfile - 我用docker build的時候出現(xiàn)下邊問題 麻煩幫我看一下7. docker-machine添加一個已有的docker主機問題8. dockerfile - [docker build image失敗- npm install]9. java - 自己制作一個視頻播放器,遇到問題,用的是內(nèi)置surfaceview類,具體看代碼!10. java - mongodb分片集群下,count和聚合統(tǒng)計問題
