javascript - nodejs抓取網(wǎng)站的翻頁(yè)判斷和言語(yǔ)判斷問題.
問題描述
網(wǎng)址 http://www.everlight.com/news...兩個(gè)問題 1 : 怎么取得每頁(yè)的url2 是 點(diǎn)開新聞的內(nèi)容, 比如 http://www.everlight.com/news...如果是英文的操作系統(tǒng),顯示的是英語(yǔ)新聞,如果是中文系統(tǒng),則顯示中文新聞,我想在node里面固定抓取英文新聞,怎么處理.
問題解答
回答1:問題關(guān)閉...
在post的時(shí)候,form里面有幾個(gè)關(guān)鍵性的數(shù)據(jù),是放在也沒的hidden變量里面,指定了這些變量應(yīng)該就能解決.
回答2:右上角有個(gè)切換語(yǔ)言的,看一下代碼,是調(diào)用了這個(gè)函數(shù):function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit();}
}
其實(shí)就是提交了一下表單,而表單是有post的方式發(fā)送的原頁(yè)面所以,你點(diǎn)擊后會(huì)看到頁(yè)面有閃一下,但網(wǎng)址并沒有變化。所以,如果你要英文版的,post方式傳參數(shù):__EVENTTARGET='ctl00$ctl00$lBtnUSA'過去就可以獲得英文版的頁(yè)面。
獲取頁(yè)面內(nèi)的url,去解析dom就行了。
獲取頁(yè)面中的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:
這個(gè)還是分析一下request 中的header信息吧,里面有一項(xiàng)是可以利用設(shè)置語(yǔ)言的
相關(guān)文章:
1. docker容器呢SSH為什么連不通呢?2. docker - 如何修改運(yùn)行中容器的配置3. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””4. docker start -a dockername 老是卡住,什么情況?5. Android TextView 或 ListView 加載過渡效果6. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?7. python - thrift 返回 TSocket read 0 bytes 求助!!!!8. python3.x - python中import theano出錯(cuò)9. python - (初學(xué)者)代碼運(yùn)行不起來,求指導(dǎo),謝謝!10. python - django模板 include模板的數(shù)據(jù)問題
