Verwenden Sie Python nur zehn Minuten, um die Marinekommentare zu automatisieren

Als ich einen Artikel schrieb, ging ich auch umher und entdeckte nach und nach einige interessante Dinge. Oft verwendeten die Leute dieselben Kommentare, um sich umzuschauen. Ich weiß nicht, ob es darum geht, nutzlose Punkte hinzuzufügen oder einfach einen guten Menschen auszudrücken. Hier kommt also das Problem. Natürlich sollte diese Art von langweiliger Sache automatisiert werden, und ich habe es selbst versucht, was reine Unterhaltung ist.

Bild

 

Natürlich wird es schwierig sein, Python zu lernen. Wie kann ich ohne gute Lernmaterialien lernen? Wenn Sie beim Erlernen von Python nicht verstehen, wird empfohlen, sich der Austauschgruppennummer anzuschließen: QQ-Gruppe: 701698587 Es gibt gleichgesinnte Freunde in der Gruppe, die sich gegenseitig helfen , und es gibt gute Video-Lern-Tutorials und PDFs in der Gruppe!

 

Anmelden

Zum Kommentieren müssen Sie sich natürlich zuerst anmelden, die Anforderungsbibliothek für die Verarbeitung verwenden und versuchen zu sehen, ob Sie Ihre Nachrichtenliste sehen können:

msg_url ="http://msg.csdn.net/"
r = requests.get(msg_url, auth=('drfish', 'password'))

Das Ergebnis springt zur Anmeldeschnittstelle. Wenn Sie gut sind, sehen Sie sich an, wie die Anmeldeschnittstelle angemeldet ist, und suchen Sie das folgende Formular:

Bild

Ich habe festgestellt, dass es einige versteckte Parameter gibt, wie z. B. lt, excution usw. Der freundliche Programmierer gab auch den Grund an, warum es nicht direkt authentifiziert werden kann: Wenn die Seriennummer fehlt, besuchen Sie sie einmal, um die Seriennummer zu erhalten, und verwenden Sie sie BeautifulSoup zum Analysieren Der Seiteninhalt erfasst die Seriennummer. Da er über verschiedene Domänen hinweg ausgeführt werden muss, wird die Sitzung eingeführt:

msg_url = "http://msg.csdn.net/"
login_url = "https://passport.csdn.net/"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}

session = requests.session()
session.headers.update(headers)
r = session.get(login_url)
page = BeautifulSoup(r.text, "lxml")
authentication = {
    "username": "drfish",
    "password": "password",
    "lt": page.select("[name=lt]")[0]["value"],
    "execution": page.select("[name=execution]")[0]["value"],
    "_eventId": "submit",
}
r = session.post(login_url, authentication)
r2 = session.get(msg_url)
print(r2.text)

Okay, jetzt kann ich meine Nachrichten erhalten, die darauf hinweisen, dass das Landeproblem erfolgreich gelöst wurde. Dann sollte der automatisierte Marinekommentar in unmittelbarer Nähe sein.

Automatischer Kommentar

Dieses Mal habe ich gut gelernt, finde einfach einen Artikel und überprüfe direkt das Kommentarfeld:

Bild

c

Senden Sie Kommentare basierend auf dem obigen Anmeldecode:

blog_url = "http://blog.csdn.net/u013291394/comment/submit?id=50444369"
comment = {
    "comment_content": "水军评论测试",
    "comment_usrId":"531203"
}

r2 = session.post(blog_url, comment)
print(r2.text)

Das Ergebnis gab ein  {"result":0,"content":"评论内容没有填写!","callback":null,"data":null}solches Ergebnis zurück. Es ist ein bisschen interessant, es sollte sein, dass die Parameter in js verarbeitet werden. Ziehen Sie dann das js heraus und sehen Sie sich die js-Datei auf der Webseite an. Es gibt eine comment.js, das war's. Im obigen Formular können Sie sehen, dass die Unterformularmethode beim Senden aufgerufen wird. Die Anzeigemethode lautet wie folgt:

function subform(e) {
    if (c_doing) return false;
    var content = $.trim($(editorId).val());
    if (content == "") {
        commentTip("评论内容没有填写!");
        return false;
    } else if (content.length > 1000) {
        commentTip("评论内容太长了,不能超过1000个字符!");
        return false;
    }
    var commentId = $("#commentId").val();
    commentTip("正在发表评论...");
    var beginTime = new Date();
    $(editorId).attr("disabled", true);
    $("button[type=submit]", e).attr("disabled", true);
    c_doing = true;
    $.ajax({
        type: "POST",
        url: $(e).attr("action"),
        data: {
            "commentid": commentId,
            "content": content,
            "replyId": $("#comment_replyId").val(),
            "boleattohome": $("#boleattohome").val()
        },
        success: function (data) {
            c_doing = false;
            commentTip(data.content);
            if (data.result) {
                var rcommentid=$("#comment_replyId").val()
                $(editorId).val('');
                $("#comment_replyId,#comment_verifycode").val('');

                commentscount++;
                loadList(1, true);
                $(editorId).attr("disabled", false);
                $("button[type=submit]", e).attr("disabled", false);

                commentTip("发表成功!评论耗时:" + (new Date() - beginTime) + "毫秒")

                if (rcommentid!=undefined && rcommentid != "")
                {
                    $("html,body").animate({ scrollTop: $("#comment_item_" + rcommentid).offset().top }, 1000);
                }

            }
        }
    });
    return false;
}

Sie können deutlich sehen, dass die zuletzt vom POST übermittelten Daten  data den Namen des Parameters geändert haben, und es gibt mehrere andere Parameter, die entweder leer oder behoben sind, indem Sie sich die js-Datei ansehen. Ignorieren Sie ihn einfach. Zur gleichen Zeit war "comment_usrId" derjenige, der es  fand, tot? Dann kommentieren Sie einfach eine Variable.

blog_url = "http://blog.csdn.net/u013291394/comment/submit?id=50444369"
comment = {
    "content": "水军评论测试",
}
r2 = session.post(blog_url, comment)
print(r2.text)

Schauen Sie sich den Effekt an:

Bild

Automatisierung

Natürlich kann die obige endgültige Parameterübertragung auch manuell von Ihnen selbst kommentiert und mit der Paketerfassungssoftware erfasst werden. Das Anzeigen der  commetn.jsDatei enthält jedoch auch Anweisungen für meine automatisierten Kommentare. Eine der  load_comment_form() Methoden besteht darin, das Kommentarformular zu laden, das die Definition enthält Handlungs:

action="/' + username + '/comment/submit?id=' + fileName + '"

Das Schreiben ist sehr klar. Solange ich den Autorennamen der Seite und die Artikelnummer erhalte, kann ich so viel kommentieren, wie ich möchte, und ich kann einen Eintrag auswählen, um den Artikel abzurufen, z. B. den neuesten Blogeintrag http: //blog.csdn.net/? ref = toolbar_logo, benutze BeautifulSoup, um die URL abzurufen und den Benutzernamen und den Dateinamen daraus zu analysieren, um eine Aktion zu bilden und den Preis für Kommentare zu erhöhen.

Führen Sie das Skript aus, um den Effekt zu testen:

Bild

Schreiben Sie am Ende

Schreiben Sie diesen Artikel nur, um Ihre eigenen Ideen zu beweisen, und um nicht zu  wollen, dass Leute böswillige Kommentare abgeben 

Ich denke du magst

Origin blog.csdn.net/Python_kele/article/details/115274837
Empfohlen
Rangfolge