如果你有什么好的建议或者BUG反馈可以B站私信联系站长残天

全站通知:

模板:妖魔(全)

来自黑神话:悟空WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

操作: 编辑模板   刷新   历史   ·    编辑文档

头目

影神图-百足虫.png

妖王

精怪


使用前需安装requests和lxml库:

pip install requests
pip install lxml

python代码如下:

import requests
from lxml import etree
# 设置HTTP请求的头部信息,模拟浏览器访问
headers = {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Cache-Control": "no-cache",
    "Connection": "keep-alive",
    "Pragma": "no-cache",
    "Sec-Fetch-Dest": "document",
    "Sec-Fetch-Mode": "navigate",
    "Sec-Fetch-Site": "same-origin",
    "Sec-Fetch-User": "?1",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
    "^sec-ch-ua": "^\\^Not/A)Brand^^;v=^\\^8^^, ^\\^Chromium^^;v=^\\^126^^, ^\\^Google",
    "sec-ch-ua-mobile": "?0",
    "^sec-ch-ua-platform": "^\\^Windows^^^"
}

def yaomo_():
    shouling_list = []
    jingguai_list = []
    # 爬取首领列表
    url = 'https://wiki.biligame.com/wukong/%E6%A8%A1%E6%9D%BF:%E5%AF%BC%E8%88%AA/%E9%A6%96%E9%A2%86'
    response = requests.get(url, headers=headers)
    parse_html = etree.HTML(response.text)
    i = 1
    while 1:
        # 获取首领的名称和对应的值
        k1_list = parse_html.xpath('//div[' + str(i) + '][@class="wk-nav-line"]/div[@class="wk-nav-line-k"]/text()')
        v1_list = parse_html.xpath('//div[' + str(i) + '][@class="wk-nav-line"]/div[@class="wk-nav-line-v"]/a/text()')
        if not v1_list and not k1_list:
            break
        for k1 in k1_list:
            shouling_list.append({k1: v1_list})
        i += 1

    # 爬取精怪列表
    url = 'https://wiki.biligame.com/wukong/%E6%A8%A1%E6%9D%BF:%E5%AF%BC%E8%88%AA/%E7%B2%BE%E6%80%AA'
    response = requests.get(url, headers=headers)
    parse_html = etree.HTML(response.text)

    i = 1
    while 1:
        # 获取精怪的名称和对应的值
        k1_list = parse_html.xpath('//div[' + str(i) + '][@class="wk-nav-line"]/div[@class="wk-nav-line-k"]/a/text()')
        v1_list = parse_html.xpath('//div[' + str(i) + '][@class="wk-nav-line"]/div[@class="wk-nav-line-v"]/a/text()')
        if not v1_list and not k1_list:
            break
        for k1 in k1_list:
            jingguai_list.append({k1: v1_list})
        i += 1
    # 搜索图片并创建最终的列表
    final_list = search_picture(shouling_list + jingguai_list)
    create_model(final_list)

def search_picture(list):
    #查找所有影神图
    final_list = []
    url = 'https://wiki.biligame.com/wukong/%E7%89%B9%E6%AE%8A:%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8'
    params = {
        "limit": "500",
        "ilsearch": '影神图'
    }
    response = requests.get(url, headers=headers, params=params)
    parse_html = etree.HTML(response.text)
    name_list = parse_html.xpath('//tr/td[@class="TablePager_col_img_name"]/a/text()')

    for i in list:
        for key in i:
            for j in i[key]:
                flag = 0
                for z in name_list:
                    if j in z:
                        flag = 1
                        final_list.append([key, j, z])
                        break
                if flag != 1:
                    final_list.append([key, j, ''])
    return final_list

def create_model(list):
    # 创建用于展示的字符串
    toumu_str = '\n<h2 id="头目">头目</h2>\n\n'
    yaowang_str = '\n<h2 id="妖王">妖王</h2>\n\n'
    jingguai_str = '\n<h2 id="精怪">精怪</h2>\n\n'

    for i in list:
        if i[0] == '头目':
            if i[2] == '':
                i[2] = 'UI-未收录影神图.png'
            toumu_str = toumu_str + '{{模板:妖魔展示|名称=' + i[1] + '|影神图=' + i[2] + '}}\n'
        if i[0] == '妖王':
            if i[2] == '':
                i[2] = 'UI-未收录影神图.png'
            yaowang_str = yaowang_str + '{{模板:妖魔展示|名称=' + i[1] + '|影神图=' + i[2] + '}}\n'
        elif i[0] != '头目' and i[0] != '妖王':
            if i[2] == '':
                i[2] = 'UI-未收录影神图.png'
            jingguai_str = jingguai_str + '{{模板:妖魔展示|名称=' + i[1] + '|影神图=' + i[2] + '}}\n'
    toumu_str += '{{clear}}'
    yaowang_str += '{{clear}}'
    jingguai_str += '{{clear}}'
    print('<includeonly>')
    print(toumu_str)
    print(yaowang_str)
    print(jingguai_str)
    print('''</includeonly><noinclude>
{{导航|模板}}{{文档}}
</noinclude>''')


if __name__ == '__main__':
    yaomo_()