Python爬虫-王者荣耀英雄图片爬取

python,爬虫,王者,荣耀,英雄,图片 · 浏览次数 : 84

小编点评

## 王者荣耀英雄图片爬取pyquery库解析方法详解 该代码使用pyquery库爬取113个王者荣耀英雄图片,并保存到指定目录中。 **步骤解析:** 1. **引入库:** ```python import pyquery as pq import requests from pathlib import Path ``` 2. **获取url:** - 遍历所有英雄图片的HtmlAttribute中,获取图片地址。 - 使用`pathlib`模块创建目录结构,并创建`hero`文件夹用来存放英雄图片。 ```python heros = hero_url('.herolist img').items() Path('hero').mkdir(exist_ok=True) for hero in heros: img_url = 'https:' + hero.attr.src ``` 3. **下载英雄图片:** - 使用`requests`库获取每个英雄图片的内容。 - 保存图片到指定目录中,并命名为图片名。 - 使用`wb`模式打开文件,写入响应内容。 ```python with open(f'./hero/{hero_name}.png','wb') as f: f.write(requests.get(img_url).content) ``` 4. **清理代码:** - 使用`pathlib`模块创建`hero`文件夹。 - 使用`Path.join`函数拼接图片路径。 **代码示例:** ```python import pyquery as pq import requests from pathlib import Path # 获取所有英雄图片的URL heros = hero_url('.herolist img').items() # 创建目录结构 Path('hero').mkdir(exist_ok=True) # 下载英雄图片 for hero in heros: img_url = 'https:' + hero.attr.src hero_name = hero.attr.alt # 创建图片文件名 with open(f'./hero/{hero_name}.png','wb') as f: f.write(requests.get(img_url).content) ``` **注意:** - 该代码需要安装`pyquery`库。可以使用`pip install pyquery`命令安装。 - 代码中没有进行图片解析,因此图片下载可能会略有延迟。

正文

王者荣耀英雄图片爬取

pyquery库

https://pyquery.readthedocs.io/en/latest/ 官方文档

https://github.com/gawel/pyquery github

  • pyquery实际上是python中的jquery

  • 安装

    pip install  pyquery
    
  • 导入

    from  pyquery import PyQuery as pq
    
  • 对象解析

    urlparse = pq(url='https://www.baidu.com/')
    # urlparse = pq(url='https://www.baidu.com/',headers=USER_HEARDER)
    fileparse=pq(file='./test.html')  # 本文不做过多阐述
    reqparse = pq(req.text)  #req = requests.get('https://www.baidu.com/')   # 本文不做过多阐述
    
  • 元素定位:直接使用css选择器

    element = reqparse(css表达式).items() # .items()得到了一个generator 可以遍历获取每个元素
    
  • 元素属性值/文本获取

    • element.attr.属性名 # 如ele.attr.class就是获取class属性的值 # 这是获取元素属性方式1
    • element.attr['属性名'] # 获取元素属性方式2
    • element.text() # 获取元素的文本

示例代码1: 用pyquery爬

from pyquery import  PyQuery as pq
import requests
from pathlib import Path
hero_url = pq(url='https://pvp.qq.com/web201605/herolist.shtml',encoding='gbk')
heros = hero_url('.herolist img').items()
Path('hero').mkdir(exist_ok=True)
for hero in heros:
    img_url = 'https:' + hero.attr.src
    hero_name = hero.attr.alt
    with open(f'./hero/{hero_name}.png','wb') as f:
        f.write(requests.get(img_url).content)
  • 几点说明
    • encoding要加,不然无法解析出html中的中文
    • Path('hero').mkdir(exist_ok=True)只是为了在当前目录下创建一个hero的文件夹用来存放英雄图片
    • hero.attr.src得到的url地址不全,要在前面加上协议信息
    • 写文件的时候要用wb模式来写图片
    • f.write应该塞一个二进制的对象,这个对象可以通过requests请求上面的url得到的响应的content来获取。
  • 但是!这样下载下来的英雄图片是缺失的,只有93个。
  • 截止到目前版本,王者已有113个,前面的一些英雄丢失了。(我的理解是延迟了?)

示例代码2: 用selenium爬

  • 不解释了
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://pvp.qq.com/web201605/herolist.shtml')
driver.maximize_window()  # 最大化窗口
driver.implicitly_wait(5)  # 隐式等待5s, 定位元素的时候如果没找到,等5s
heros = driver.find_elements('css selector','.herolist img') # 找到所有的英雄
for  hero in heros:  # hero 就是某个英雄元素, 对应到selenium中是WebElement类型
    img_url = hero.get_attribute('src') # 获取元素的src属性值
    hero_name = hero.get_attribute('alt')
    with open(f'./hero1/{hero_name}.png','wb') as f:
        pic_content = requests.get(img_url).content
        f.write(pic_content)
  • 这样可以爬下来113个英雄

与Python爬虫-王者荣耀英雄图片爬取相似的内容:

Python爬虫-王者荣耀英雄图片爬取

王者荣耀英雄图片爬取 pyquery库 https://pyquery.readthedocs.io/en/latest/ 官方文档 https://github.com/gawel/pyquery github pyquery实际上是python中的jquery 安装 pip install py

python教程8-页面爬虫

python爬虫常用requests和beautifulSoup这2个第三方模块。需要先进行手动安装。 requests负责下载页面数据,beautifulSoup负责解析页面标签。 关于beautifulSoup的api使用,详见api页面:https://beautifulsoup.readth

Python 爬虫实战:驾驭数据洪流,揭秘网页深处

**爬虫,这个经常被人提到的词,是对数据收集过程的一种形象化描述。特别是在Python语言中,由于其丰富的库资源和良好的易用性,使得其成为编写爬虫的绝佳选择。本文将从基础知识开始,深入浅出地讲解Python爬虫的相关知识,并分享一些独特的用法和实用技巧。本文将以实际的网站为例,深入阐述各个处理部分,

Python爬虫(二):写一个爬取壁纸网站图片的爬虫(图片下载,词频统计,思路)

好家伙,写爬虫 代码: import requests import re import os from collections import Counter import xlwt # 创建Excel文件 workbook = xlwt.Workbook(encoding='utf-8') wor

Python爬虫-爬取小说

Python爬虫-爬取小说 代码 import os from pyquery import PyQuery as pq # 1. 配置爬取信息: 待爬取网站、小说的url、小说名字 website = 'https://www.bbiquge.net' novel_url = '/book/133

python 爬虫某东网商品信息 | 没想到销量最高的是

哈喽大家好,我是咸鱼 好久没更新 python 爬虫相关的文章了,今天我们使用 selenium 模块来简单写个爬虫程序——爬取某东网商品信息 网址链接:https://www.jd.com/ 完整源码在文章最后 ## 元素定位 我们需要找到网页上元素的位置信息(xpth 路径) ![image](

python爬虫之根据期刊信息获取知网文献信息 pt.1

哈喽大家好,我是咸鱼 之前写过一篇获取知网文献信息的文章([关于《爬取知网文献信息》中代码的一些优化](http://mp.weixin.qq.com/s?__biz=MzkzNzI1MzE2Mw==&mid=2247485617&idx=1&sn=8c38163fc757784d3048e5043

通过模仿学会Python爬虫(一):零基础上手

好家伙,爬虫来了 爬虫,这玩意,不会怎么办, 诶,先抄一份作业回来 1.别人的爬虫 Python爬虫史上超详细讲解(零基础入门,老年人都看的懂)_ChenBinBini的博客-CSDN博客 # -*- codeing = utf-8 -*- from bs4 import BeautifulSoup

关于文章《爬取知网文献信息》中代码的一些优化

哈喽大家好,我是咸鱼 之前写了一篇关于文献爬虫的文章Python爬虫实战(5) | 爬取知网文献信息 文章发布之后有很多小伙伴给出了一些反馈和指正,在认真看了小伙伴们的留言之后,咸鱼对代码进行了一些优化 优化的代码在文末,欢迎各位小伙伴给出意见和指正 问题 pycharm 设置 Edge 驱动器的环

只听过 Python 做爬虫?不瞒你说 Java 也很强

网络爬虫技术,早在万维网诞生的时候,就已经出现了,今天我们就一起来揭开它神秘的面纱! 一、摘要 说起网络爬虫,相信大家都不陌生,又俗称网络机器人,指的是程序按照一定的规则,从互联网上抓取网页,然后从中获取有价值的数据,随便在网上搜索一下,排在前面基本都是 pyhton 教程介绍。 的确,pyhton