Heim > Backend-Entwicklung > Python-Tutorial > Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

Freigeben: 2023-07-24 14:55:56
nach vorne
970 Leute haben es durchsucht

1. Einführung

Freunde, die das Spiel „Honor of Kings“ gespielt haben, wissen alle, dass eine angemessene Ausrüstung, gepaart mit Inschriften, Sie unaufhaltsam machen kann unaufhaltsam auf dem Schlachtfeld der Könige!

Vor ein paar Tagen habe ich in der [Minglao]-Gruppe gesehen, dass er einen Python-Webcrawler geteilt hat, um die Ausrüstungsanweisungen des Helden „Honor of Kings“ zu erhalten, und den Thread-Pool verwendet hat, um die Ausrüstungsbilder herunterzuladen und dann automatisch einen Markdown zu generieren Es gibt viele nützliche Inhalte, die ich hier mit Ihnen teilen kann. Jeder ist herzlich eingeladen, ihn auszuprobieren.

2. Datenerfassung

Unsere Zielwebsite hier ist die offizielle Website von King of Glory, wie im Bild unten gezeigt. Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

Klicken Sie dann auf die Schaltfläche [Mehr] von [Helden/Skins] auf der rechten Seite der Startseite, um die Detailseite aufzurufen, wie im Bild unten gezeigt. Klicken Sie auf [In-Game-Gegenstände], um die Ausrüstungsinformationen anzuzeigen Beinhaltet das Abrufen der gewünschten Zielinformationen. Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

Durch die Erfassung von Paketen über den Browser können Sie spezifische Informationen abrufen und diese im json-Format gespeichert sehen.

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generierenDas Bild unten ist ein Screenshot der Datendetails. Sie können sehen, dass es chinesische verstümmelte Zeichen gibt. Dies hat zumindest keinen Einfluss auf die Daten.

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

Code-Implementierungsprozess

Nachdem wir die Datenquelle gefunden haben, besteht der nächste Schritt darin, den Code direkt anzuwenden und in jupyter notebook auszuführen.

Gerätedaten abrufen

import requests
import pandas as pd

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/88.0.4324.104 Safari/537.36 '
}
target = 'https://pvp.qq.com/web201605/js/item.json'
item_list = requests.get(target, headers=headers).json()
item_df = pd.DataFrame(item_list)
item_df.sort_values(["item_type", "price", "item_id"], inplace=True)
item_df.fillna("", inplace=True)
item_df.des1 = item_df.des1.str.replace("</?p>", "", regex=True)
item_df.des2 = item_df.des2.str.replace("</?p>", "", regex=True)
item_df
Nach dem Login kopieren

Das Ergebnis ist wie in der folgenden Abbildung dargestellt:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

Multi-Thread-Download von Bildern

Als nächstes verwenden Sie die Thread-Pool-Methode, um Bilder herunterzuladen Das Zusammenfügen von Bildern ist ebenfalls sehr einfach, was auf den ersten Blick deutlich wird, wenn man sich das Bild unten ansieht.

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generierenDas Folgende ist die Code-Implementierung:

import os
from concurrent.futures import ThreadPoolExecutor


def download_img(item_id):
    if os.path.exists(f"imgs/{item_id}.jpg"):
        return
    imgurl = f"http://game.gtimg.cn/images/yxzj/img201606/itemimg/{item_id}.jpg"
    res = requests.get(imgurl)
    with open(f"imgs/{item_id}.jpg", "wb") as f:
        f.write(res.content)


os.makedirs("imgs", exist_ok=True)
with ThreadPoolExecutor(max_workers=8) as executor:
    nums = executor.map(download_img, item_df.item_id)
Nach dem Login kopieren

Die Download-Geschwindigkeit ist sehr schnell, nur wenige Sekunden, und das Ergebnis ist wie in der Abbildung unten dargestellt:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

Als nächstes generieren wir automatisch das Markdown-Dokument Werfen wir anhand der Daten einen Blick darauf.

Markdown-Dokument generieren

Der erste Teil ist die Vorverarbeitung der Daten, gefolgt vom Schreiben der Datei:

item_type_dict = {1: &#39;攻击&#39;, 2: &#39;法术&#39;, 3: &#39;防御&#39;, 4: &#39;移动&#39;, 5: &#39;打野&#39;, 7: &#39;游走&#39;}
item_ids = item_df.item_id.values
item_df.item_id = item_df.item_id.apply(
    lambda item_id: f"![{item_id}](imgs/{item_id}.jpg)")
item_df.item_type = item_df.item_type.map(item_type_dict)
item_df.columns = ["图片", "装备名称", "类型", "售价", "总价", "基础描述", "扩展描述"]
item_df
Nach dem Login kopieren

Der Code zum Schreiben der Datei und zum Generieren des Markdown-Dokuments:

with open("王者装备说明.md", "w") as f:
    for item_type, item_split in item_df.groupby("类型", sort=False):
        f.write(f"# {item_type}\n")
        item_split.drop(columns="类型", inplace=True)
        f.write(item_split.to_markdown(index=False))
        f.write("\n\n")
Nach dem Login kopieren

Das Ergebnis ist wie folgt:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

Danach wird lokal ein Markdown-Dokument mit dem Namen [King Equipment Description.md] erstellt. Doppelklicken Sie auf die Datei, um sie zu öffnen:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generierenWas ein toller Kerl! Als ich diesen Schritt implementiert habe, ist ein Fehler aufgetreten, wie unten gezeigt:

Missing optional dependency &#39;tabulate&#39;.  Use pip or conda to install tabulate.
Nach dem Login kopieren

提示却少依赖库,只需要在cmd下进行安装即可pip install tabulate,之后就可以正常运行了。

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

生成Excel表格

不过Markdown的表格无法任意调整,图片需要点击后才会放大,下面我们考虑生成Excel表格:首先需要整理数据,代码如下:

item_df.图片 = ""
item_df.基础描述 = item_df.基础描述.str.replace("<br>", "\n")
item_df.扩展描述 = item_df.扩展描述.str.replace("<br>", "\n")
item_df
Nach dem Login kopieren

生成结果如下图所示:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren之后将结果写入到Excel中去,代码如下所示:

# 写入Excel表格
from openpyxl.drawing.image import Image
from openpyxl.styles import Alignment

with pd.ExcelWriter("王者装备说明.xlsx", engine=&#39;openpyxl&#39;) as writer:
    item_df.to_excel(writer, sheet_name=&#39;装备说明&#39;, index=False)
    worksheet = writer.sheets[&#39;装备说明&#39;]
    worksheet.column_dimensions["A"].width = 11
    for item_id, (cell,) in zip(item_ids, worksheet.iter_rows(2, None, 1, 1)):
        worksheet.row_dimensions[cell.row].height = 67
        worksheet.add_image(Image(f"imgs/{item_id}.jpg"), f&#39;A{cell.row}&#39;)
    worksheet.column_dimensions["F"].width = 15
    worksheet.column_dimensions["G"].width = 35
    writer.save()
Nach dem Login kopieren

打开文件,效果图如下图所示:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

当然了,大家也可以根据自己想要的效果生成HTML和Word等等。

三、总结

大家好,我是Python进阶者。这篇文章主要分享了一个使用Python网络爬虫获取王者荣耀英雄出装说明,并使用线程池的方式下载了出装图片,之后还自动化生成了markdown文件,干货内容很多,欢迎大家积极尝试,如果有遇到问题,请添加我好友,我帮助解决。

最后感谢粉丝【明佬】分享的代码喝王者荣耀出装攻略,真是太强了,上王者指日可待!

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren

最后放上【明佬】的csdn链接:https://xxmdmst.blog.csdn.net/article/details/124035041,点击阅读原文可以直达噢!

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen Schritt für Schritt bei, wie Sie mit dem Python-Webcrawler Anweisungen zur Ausrüstung von King of Glory-Helden erhalten und automatisch Markdown-Dateien generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Go语言进阶学习
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage