Heim  >  Artikel  >  Backend-Entwicklung  >  Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

藏色散人
藏色散人nach vorne
2021-12-20 10:42:025625Durchsuche

Verwenden Sie PHP, um die automatische Lösung von Fragen im Klassenzimmer-Workshop zu realisieren

Open-Source-Adresse

https://github.com/WOSHIZHAZHA120/kgc_cheater

Allgemeine Idee

  • Nehmen Sie alle Fragen und markieren Sie sie sie an der Rezeption
  • Notieren Sie die Antworten im Hintergrund
  • Holen Sie sich die Antworten aus dem Hintergrund und füllen Sie sie automatisch aus

Grundsatz der Umsetzung

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)
Zunächst können Sie feststellen, dass alle Fragen vorhanden sind Bilder, aber die URLs haben eines gemeinsam, nämlich imageType=2 code><code>imageType=2
那么直接上代码【推荐学习:《PHP视频教程》】

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

得到所有图片地址后发送到后台, 后台将收到所有图片的url地址

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

这是一部分源码, 关于这个getQuestionIdFromImageUrl待会再说
然后新建一个数据库, 我这里是建了一个名叫kgc_cheater的数据库
以及表question_answers
如下是表结构

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

以及使用Medoo/Medoo库用作数据库链接

然后写一个从数据库拿答案的逻辑

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

你们可能会好奇maps是什么, 因为前台图片地址的运算是和后台不一样的
给你们看一下getQuestionIdFromImageUrl你们也许能明白

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

因为发现每个用户的图片地址都不相同, 即使题目是一样的, 但是每个账号图片地址都不会变, 那么说明图片地址的计算是有规律的, 研究半天发现, 其实就是把relativePath参数用/分割后的把第二个部分减去指定偏移值, 待会说明如何获取
我们直接向后台请求答案, 返回maps和answers参数

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

maps的定义其实就是$url => $question_id
answers的定义是['question_id' => $question_id, 'answer' => $answer]

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

如图, 使用3个parent然后进入ul.sec2获取答案列表, 然后找到包含答案的元素并模拟点击它
这样就完成了一次自动答题

回到上面, 关于偏移值的获取, 在你登录进去的时候看你的url

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

559634 就是你的偏移值, 进入答题页面
这是图片的源地址 https://tiku.kgc.cn/testing/cdn/getImage?relativePath=0069000/1543312740097/e19f21615ab8e9866619bf47c3b5b59c.jpg&imageType=2

获取原图片id为 0069000/1543312740097
使用偏移值减去第二个参数得到1543312180463

最终得到题目id: 0069000/1543312180463Dann gehen Sie direkt zum Code [Empfohlenes Lernen: "PHP-Video-Tutorial a>》】

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)


Holen Sie sich alle Bildadressen und senden Sie sie an das Backend. Das Backend erhält die URL-Adressen von allen die Bilder

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)🎜 🎜Das ist Teil des Quellcodes, darüber getQuestionIdFromImageUrl Ich werde später darüber sprechen🎜Dann erstellen Sie eine neue Datenbank, ich habe hier eine erstellt. Die Datenbank mit dem Namen kgc_cheater und die Tabelle Frage_Antworten🎜 lauten wie folgt: Tabellenstruktur🎜🎜Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)🎜🎜 🎜🎜 Vielleicht sind Sie neugierig Karten? >, denn die Berechnung der Bildadresse im Vordergrund unterscheidet sich von der im Backend🎜Lassen Sie mich Ihnen getQuestionIdFromImageUrl zeigen und Sie werden es vielleicht verstehen🎜🎜 6AFB8621BE98649CEE3AF7AAA4FD48E0.PNG 🎜🎜BECAUS. if Die Frage ist dieselbe, aber die Bildadresse jedes Kontos ändert sich nicht, was bedeutet, dass die Berechnung der Bildadresse regelmäßig erfolgt. Nach langer Recherche habe ich festgestellt, dass es sich tatsächlich um die Verwendung von / für den <code>relativePath-Parameter. Subtrahieren Sie den angegebenen Offset-Wert vom zweiten Teil. Wir werden später erklären, wie Sie die Antwort vom Hintergrund erhalten Karten- und Antwortparameter. Verwenden Sie PHP und Oil Monkey, um das automatische Schreiben von Fragen zu realisieren das Klassenzimmer🎜🎜Die Definition von maps ist eigentlich $url => $question_id🎜answers ist definiert als [ 'question_id' => $question_id, 'answer' => $answer]🎜🎜Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen) 🎜🎜 Wie im Bild gezeigt, verwenden Sie 3 Eltern und geben Sie dann ul.sec2 ein, um die Antwortliste zu erhalten. Suchen Sie dann das Element, das die Antwort enthält, und Simulieren Sie, dass Sie darauf klicken🎜Damit ist eine automatische Antwort abgeschlossen🎜🎜Zurück zum oben Gesagten zum Abrufen des Offset-Werts, nachdem Sie sich angemeldet haben. Sehen Sie sich bei der Eingabe Ihre URL an🎜🎜Verwenden Sie PHP und Oil Monkey, um die Lektion umzusetzen. Der Workshop aktualisiert automatisch Fragen🎜🎜559634 ist Ihr Offset Geben Sie den Wert ein, geben Sie die Antwortseite ein. 🎜 Dies ist die Quelladresse des Bildes 🎜Erhalten Sie die ursprüngliche Bild-ID als 0069000/1543312740097🎜Verwenden Sie den Offsetwert. Subtrahieren Sie das zweite Argument, um 1543312180463 zu erhalten. 🎜🎜Endlich habe ich die Frage-ID erhalten: 0069000/1543312180463 🎜Andere Konten können nach Experimenten auch die gleiche ID erhalten, und dann ist dies die tatsächliche ID, die in der Datenbank gespeichert ist🎜🎜Beim Betreten der Hauptseite habe ich ein Skript, um dies aufzuzeichnen🎜Speichern mit Cookies🎜Angehängt ist der Code 🎜

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

Es gibt die richtige Antwort in der Parsing-Schnittstelle

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

Jeder Teil ist mit .sec.post umschlossen. .sec.post 包起来了
然后往下取 .sec2 再取 img 并获取url
可以得到图片id, 同样取relativePath但是不需要应用偏移值了, 直接存进数据库即可
同样的, 答案在 .sec3 往下 .pad10 再往下 em:eq(0)
直接这样取

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

然后发给后端丢到数据库里记录起来
并在前台发送已记录消息

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

后端记录代码

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

然后就是前后端配合, 自动记录题目, 自动答题
最后就是自动刷题
进入一张试卷后, 自动填写之后加了一段自动更新试卷的代码, 如图

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

关于fuxiAuto后面的那串数字
也许我们都不太一样, 附上科目id获取教程

首先进入

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

利用开发者工具找到开始测试按钮

Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)

javascript:unitExam(1098001001)
这个1098001001Dann gehen Sie nach unten und nehmen Sie .sec2 und Nehmen Sie dann img und holen Sie sich die URL. Sie können die Bild-ID erhalten. Sie erhalten auch den relativePath, aber Sie müssen den Offset-Wert nicht anwenden, sondern ihn einfach direkt speichern in der Datenbank
Ähnlich ist die Antwort in .sec3. Gehen Sie zu .pad10 und dann zu em:eq(0) und Holen Sie es sich direkt so

Verwenden Sie PHP und Oil Monkey, um automatische Fragen zu realisieren Schreiben im Kurs-Workshop“/></p><p>Dann an das Backend senden und in die Datenbank werfen. Aufzeichnen <img src= und die aufgezeichnete Nachricht im Vordergrund senden

Affe Realization Class Workshop mit PHP und Öl beantwortet automatisch Fragen

🎜Back-End-Aufzeichnungscode🎜🎜Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)🎜🎜Dann die Zusammenarbeit zwischen Front-End und Backend , Automatische Aufzeichnung von Fragen, automatische Beantwortung🎜Schließlich automatisches Bürsten🎜Nach der Eingabe eines Testpapiers wird nach dem automatischen Ausfüllen ein Abschnitt zum automatischen Aktualisieren des Testpapiers hinzugefügt, wie im Bild gezeigt🎜🎜Verwenden Sie PHP und Oil Monkey, um automatisches Bürsten in der Workshop-Frage zu realisieren🎜🎜Über die Zeichenfolge von Zahlen nach fuxiAuto🎜Vielleicht sind wir alle unterschiedlich, hier ist eine Anleitung, wie man die Betreff-ID erhält🎜🎜Geben Sie zuerst ein🎜🎜Analysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen)🎜🎜Verwenden Sie die Entwicklertools, um die Schaltfläche „Testen starten“ zu finden 🎜 🎜Verwenden Sie PHP und Grease Monkey, um Fragen im Klassenzimmer automatisch zu beantworten🎜🎜javascript:unitExam (1098001001)🎜Dieser 1098001001 ist die Betreff-ID🎜Die letzte Ziffer hier ist von 1 bis 7, also habe ich eine automatische Zufallszahl geschrieben, um zufällig eine ganze Zahl von 1 bis 7 zu generieren🎜🎜 Auch die Änderung ist sehr einfach🎜🎜🎜🎜🎜Ändern Sie einfach 1 und 7 im Bild auf Ihre Minimal- und Maximalwerte. 🎜

Das obige ist der detaillierte Inhalt vonAnalysieren Sie, wie PHP das „automatische Fragen-Brushing“ implementiert (mit Ideen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen