python——爬取LOL英雄图片
今天小编学习到了爬取LOL英雄图片的代码,特来分享一下?????
今天用到了反爬措施是,webdriver,直接调用浏览器进行数据访问,拿到html数据。
需要用到的库: selenium
requests,lxml
requests用于请求网站,获取html数据(通常针对没有反爬措施网址),可参考Robots协议。
from selenium import webdriver
from lxml import etree
import requests
import os
1:首先是访问网页,拿到html数据
driver = webdriver.Chrome()
driver.get(“https://lol.qq.com/data/info-heros.shtml”)
html = driver.page_source
driver.close()
2:抽取想要的名称,图片链接
html = etree.HTML(html)
src_list = html.xpath(’//ul[@id=“jSearchHeroDiv”]/li/a[@href=“info-defail.shtml?id=Aatrox”]/img/@src’)
tit_list = html.xpath(’//ul[@id=“jSearchHeroDiv”]/li/a[@href=“info-defail.shtml?id=Aatrox”]/p/text()’)
print(src_list, tit_list)
可以先输出src_list,tit_list,以确保获得数据。再进行下一步。
注意 图片属于二进制数据,故需要用content提取二进制数据。
for src, tit in zip(src_list,tit_list):
#下载图片
if not os.path.exists(‘tit’ + ‘.png’):
os.mkdir(‘tit’ + ‘.png’)
src = “https:” + src
response = requests.get(src)
# 保存图片
with open(tit + ‘.png’,‘wb’) as f:
f.write(response.content)
最后展示一下小编做出来的结果: