Python随记(28)爬取碧蓝航线的立绘(狗头)

碧蓝的舰娘们好漂亮啊。。。。。不如全部爬下来吧。。主要是为了学习 收藏 (狗头)
当然作为萌新方法可能不是很好,,,
君主我老婆
在这里插入图片描述

import requests
from lxml import etree
from urllib import request
import os

os.chdir(r'C:\Users\NERO\Desktop\blhx')
url = 'https://wiki.biligame.com/blhx/%E8%88%B0%E5%A8%98%E5%9B%BE%E9%89%B4'
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}

def get_urls(url):
    resp = requests.get(url,headers=headers)
    text = resp.text
    html = etree.HTML(text)
    detail_urls = []
    for urls in html.xpath('//div[@style="position:relative;display:inline-block;overflow:hidden;border-radius:5px"]/a/@href'):
        detail_urls.append(urls)
    return detail_urls

def get_data(url):
    detail_url = 'https://wiki.biligame.com/' + str(url)
    resp = requests.get(detail_url,headers=headers)
    text = resp.text
    html = etree.HTML(text)
    name = html.xpath('//div[@class="Contentbox2"]//div/img/@alt')
    jpg = html.xpath('//div[@class="Contentbox2"]//div/img/@src')
    data_dict = dict(zip(name,jpg))     # 将俩个列表搞成字典。。
    for each in data_dict:
        request.urlretrieve(data_dict[each],each)   # 转换成图片



def main():
        detail_urls = get_urls(url)
        for each in detail_urls:
            get_data(each)


if __name__ == '__main__':
    main()

那个将列表搞成字典,我想了好几个小时。。。。最后还是百度。。基础不牢地动山摇 哭。。。。

附上上过程中学到的:

  1. 在字符串中提取数据,返回新的字典
    在后期的爬虫课程中,我们需要获取cookies并以字典的形式传参,如果cookies是字符串则需要转换为字典,经典代码案例如下:
cookies = "anonymid=jy0ui55o-u6f6zd; depovince=GW; _r01_=1; JSESSIONID=abcMktGLRGjLtdhBk7OVw; ick_login=a9b557b8-8138-4e9d-8601-de7b2a633f80; _ga=GA1.2.1307141854.1562980962; _gid=GA1.2.201589596.1562980962; _c1=-100; first_login_flag=1; ln_uact=18323008898; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; jebe_key=88f1340c-592c-4dd6-a738-128a76559f45%7Cad33b3c730fcdc8df220648f0893e840%7C1562981108370%7C1%7C1562981106763; jebe_key=88f1340c-592c-4dd6-a738-128a76559f45%7Cad33b3c730fcdc8df220648f0893e840%7C1562981108370%7C1%7C1562981106765; jebecookies=793eb32e-92c6-470d-b9d0-5f924c335d30|||||; _de=E77807CE44886E0134ABF27E72CFD74F; p=a00d65b1f779614cd242dc719e24c73e0; t=292ba8729a4151c1a357e176d8d91bff0; societyguester=292ba8729a4151c1a357e176d8d91bff0; id=969937120; xnsid=1700b2cc; ver=7.0; loginfrom=null; wp_fold=0"

# 字典推导式
cookies = {cookie.split("=")[0]:cookie.split("=")[1] for cookie in cookies.split("; ")}
print(cookies)

{'anonymid': 'jy0ui55o-u6f6zd', 'depovince': 'GW', '_r01_': '1', 'JSESSIONID': 'abcMktGLRGjLtdhBk7OVw', 。。。。。。
  1. 将列表组合成字典
方法一:
list1 = ['k1','k2','k3']
list2 = ['v1','v2','v3']
dic = dict(map(lambda x,y:[x,y],list1,list2))

>>> print(dic)
{'k3': 'v3', 'k2': 'v2', 'k1': 'v1'}

方法二:
>>> dict(zip(list1,list2))
{'k3': 'v3', 'k2': 'v2', 'k1': 'v1'}

>>> {v:k for k,v in x.items()}            #反过来 将字典中的v和k调
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
这是一款提取游戏资源的工具 开发环境:Windows XP SP2,Core2Duo E6700、内存 2 GB VC 2005 Express Edition运行环境:Windows XP Vista Win7 如何使用? 打开,请选择文件-> 打开的文件或窗口打开您想要部署并拖放的存档文件。 如果打开的文件支持与如此諦めれ (Oh 不相符,则打开但是,如果存档文件的内容是 AHX、 BMP、 JPG、 MID、 MPG、 OGG、 PNG、 WAV、 WMV 揪出可能的。[解压缩],选择您要检索的文件以后打开-k 是 > 选择中提取。如果您想要检索所有提取-k 是 > 提取所有。 此外,双击所选的文件的意见发挥是可能的。 基本设置列表设置字符颜色和背景色要显示文件信息的列表。 如何指定的颜色表示 16 小数 RGB (RRGGBB 格式)。 若要搜索文件或查找哪些类型的文件从归档文件不兼容设置。 如果您知道已存档的文件来检查只是可取 (表面速度)。精度的搜索OGG 寻找只能用"OggS",看看小小的检查设置。 我通常保持精度,以避免误报,很好。 提取设置-为每个文件夹中提取当您检查文件夹名称中包含要提取的文件夹来生成的文件的文件名。 -固定 OGG 文件 CRC当您检查正确的 CRC,以提取。不能播放由于 CRC 不匹配,可能能够在正确的 CRC 中发挥 OGG。 简单的解码功能,以实现和标记,会有人用简单的解码过程加密的文件。 到目前为止唯一脚本文件的 bmp、 jpg、 mpg、 ogg、 png、 tlg、 吉 hagil 里。 输出图像格式输出图像的文件格式。 谁想要最小化 PNG 是更好的空间。 0 表示无压缩的压缩级别,9 最大压缩。 此外,原始文件 (如 JPG 或 PNG 的 JPG 或 PNG 输出。 -执行 alpha 混合如果您检查,背景颜色设置为 alpha 混合和输出的 24 位。 好,如果不需要的 alpha 值,则检查。-背景色要使用 alpha 混合时价值。 如何指定的颜色表示 16 小数 RGB (RRGGBB 格式)。 -目标每次您提取对话框中显示指定每个指定目的地的时间。 "同一目的地文件夹"创建一个文件夹具有相同的名称和文件打开的如果到位置打开的文件和输出中。 存储文件具有相同的名称和它的位置创建一个文件夹,如果一个。 如果下面的文件夹,设置如下的输出文件夹。 缓冲区大小内存,用于提取文件的大小。 -临时文件夹一个位置来提取临时视图,如果您通过双击播放。 当您打开存档文件或当您退出 ExtractData 时,将删除暂时提取的文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值