爬取王者荣耀英雄图片的问题
为什么网站源码和右键元素不一样呢?我用PyQuery只能获取从 云中君 开始这个英雄的图标
好像是这样的我的代码中只包含这个英雄 云中君 开始的数据所以只能从这个英雄开始爬取图片。
然而我想爬取所有的图片该怎么办呢?
代码如下:
import requests
from pyquery import PyQuery
html = requests.get("https://pvp.qq.com/web201605/herolist.shtml").content
doc = PyQuery(html)
items = doc('.herolist > li ').items()
for item in items:
url = item.find('img').attr('src')
urls = 'https:' + url
name = item.find('a').text()
url_content = requests.get(urls).content
with open("./王者荣耀英雄图片/" + name + '.jpg','wb') as file:
file.write(url_content)
print("正在爬取图片中...")
问题出在你只获取了一个英雄的图标,因为你只遍历了 .herolist > li 中的元素,而这些元素只是英雄列表中的一部分。要获取所有英雄的图片,你需要遍历所有的英雄列表。
你可以通过以下代码修改你的程序来实现获取所有英雄的图片:
import requests
from pyquery import PyQuery
html = requests.get("https://pvp.qq.com/web201605/herolist.shtml").content
doc = PyQuery(html)
items = doc('.herolist > li').items()
for item in items:
url = item.find('img').attr('src')
urls = 'https:' + url
name = item.find('a').text()
url_content = requests.get(urls).content
with open("./王者荣耀英雄图片/" + name + '.jpg','wb') as file:
file.write(url_content)
print("正在爬取图片中...")
这样,你就可以获取所有英雄的图片了。 isdkz 发表于 2023-8-16 10:13
问题出在你只获取了一个英雄的图标,因为你只遍历了 .herolist > li 中的元素,而这些元素只是英雄列表中的 ...
代码好像和我原来的那个没有改动啊?这怎么行? 右键看到的是执行过js的结果,ctrl+u是没执行过js的,所以不一样 歌者文明清理员 发表于 2023-8-16 10:27
右键看到的是执行过js的结果,ctrl+u是没执行过js的,所以不一样
有没有办法从开头的英雄图片爬取呢? python小小白哟 发表于 2023-8-16 10:30
有没有办法从开头的英雄图片爬取呢?
那就得用 selenium 了 歌者文明清理员 发表于 2023-8-16 10:34
那就得用 selenium 了
好的感谢 python小小白哟 发表于 2023-8-16 10:35
好的感谢
配置教程:https://blog.csdn.net/zhoukeguai/article/details/113247342
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("https://pvp.qq.com/web201605/herolist.shtml")
sleep(1) # 等待js加载
source = driver.page_source
driver.close() pvp.qq.com/web201605/js/herolist.json里就是name和ename
game.gtimg.cn/images/yxzj/img201606/heroimg/{ename}/{ename}.jpg替换进去就是图片 歌者文明清理员 发表于 2023-8-16 10:34
那就得用 selenium 了
爬王者荣耀完全可以用requests
页:
[1]