suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Nodejs crawlt Website-Umblätter- und Sprachbeurteilungsprobleme.

Website http://www.everlight.com/news...
Zwei Fragen 1: Wie erhalte ich die URL jeder Seite? 2 ist der Inhalt der Nachrichten, wenn Sie darauf klicken.
Zum Beispiel http:// www.everlight.com/news ...
Wenn es sich um ein englisches Betriebssystem handelt, werden englische Nachrichten angezeigt.
Wenn es sich um ein chinesisches System handelt, werden chinesische Nachrichten angezeigt.
Ich möchte englische Nachrichten im Knoten erfassen damit umzugehen.

淡淡烟草味淡淡烟草味2749 Tage vor616

Antworte allen(3)Ich werde antworten

  • 巴扎黑

    巴扎黑2017-05-16 13:44:31

    问题关闭...

    在post的时候,form里面有几个关键性的数据,是放在也没的hidden变量里面,指定了这些变量应该就能解决.

    Antwort
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:44:31

    右上角有个切换语言的,看一下代码,是调用了这个函数:
    function __doPostBack(eventTarget, eventArgument) {

    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }

    }

    其实就是提交了一下表单,
    而表单是有post的方式发送的原页面
    所以,你点击后会看到页面有闪一下,但网址并没有变化。
    所以,如果你要英文版的,post方式传参数:__EVENTTARGET="ctl00$ctl00$lBtnUSA"过去就可以获得英文版的页面。

    获取页面内的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);
        });
      }
    });
    

    Antwort
    0
  • 某草草

    某草草2017-05-16 13:44:31

    这个还是分析一下request 中的header信息吧,里面有一项是可以利用设置语言的

    Antwort
    0
  • StornierenAntwort