一. 爬虫是什么?

网络爬虫是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本.

简单的说:就是用事先写好的程序去抓取网络上所需的数据.编写网络爬虫的程序员叫做爬虫工程师.

.

二. 爬虫的四个主要步骤:

1.明确目标

找到需要获取的网页url

2.爬

将所有网页上的内容都爬下来

3.取

去掉对我们没用处的数据,筛选出我们需要的数据

4.处理数据

按照我们的方式储存和使用这些数据

.

三. 爬虫的案例( 王者荣耀皮肤图片的抓取 )

1.初级版


# 导入模块
import requests# 定义请求头,需自行添加用户代理
headers={'User-Agent': '自己的网页上的用户代理',
}# 定义参数
# params={}
# 请求网址 https://pvp.qq.com/web201605/js/herolist.json# 发起请求
response=requests.get(url='https://pvp.qq.com/web201605/js/herolist.json',headers=headers)# 获取数据
url_list = response.json()for url in url_list:# 获取 名称name = url['cname']# 获取 idid = url['ename']# 获取 皮肤 (预防取空报错)try:pifu = url['skin_name'].split('|')except Exception as e:print(e)# print(pifu)for i in range(1, len(pifu)+1):# 请求图片地址url = f'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{id}/{id}-bigskin-{i}.jpg'response = requests.get(url=url, headers= headers)# 保存图片到文件夹中with open(f'./hero_imgs/{pifu[i-1]}.jpg', 'wb') as fp:fp.write(response.content)# print(url)

.

2.升级版(用函数编写)


# 王者荣耀皮肤抓取
# URL:https://pvp.qq.com/web201605/herolist.shtml
# 需求:获取所有英雄的所有皮肤并下载到本地# 思路:
# 1. 请求英雄列表页URL ---> 获取每一个英雄的URL
# 2. 请求每个英雄的URL ---> 获取对应英雄的皮肤URL
# 3. 请求每个英雄的皮肤URL ---> 保存import requests
from lxml import etree# 发起请求,接收响应
# response = requests.get(url='https://pvp.qq.com/web201605/herolist.shtml',headers=headers)# print(response.content.decode('gbk'))# 夏洛特:https://pvp.qq.com/web201605/herodetail/536.shtml
# 阿古朵:https://pvp.qq.com/web201605/herodetail/533.shtml
# 蒙犽:https://pvp.qq.com/web201605/herodetail/524.shtml
# 经过对比,发现,只有数字不同,每个英雄都有对应的数字
# 所以,找每个英雄的id
# 可以通过json文件,获取每个英雄的ename,ename对应每个英雄的id# 皮肤规律:
# 廉颇:
# 1. //game.gtimg.cn/images/yxzj/img201606/skin/hero-info/105/105-bigskin-3.jpg
# 2. //game.gtimg.cn/images/yxzj/img201606/skin/hero-info/105/105-bigskin-2.jpg
# 3. //game.gtimg.cn/images/yxzj/img201606/skin/hero-info/105/105-bigskin-1.jpg# 赵云
# 1. //game.gtimg.cn/images/yxzj/img201606/skin/hero-info/107/107-bigskin-8.jpg# 定义获取ename的函数
def get_ename(url):ename_lst = []# 发起请求,接收响应response = requests.get(url=url,headers=headers)content_list = response.json()# 循环获取每一个英雄的enamefor content in content_list:ename = content['ename']ename_lst.append(ename)return ename_lst# 定义获取图片链接函数
def get_img_href(url):# 发起请求,接收响应response = requests.get(url=url,headers=headers)html = etree.HTML(response.content.decode('gbk'))# 获取皮肤数量ul = html.xpath('//ul[@class="pic-pf-list pic-pf-list3"]/@data-imgname')[0]pifu_list = ul.split('|')return pifu_list# 定义下载图片函数
def download_img(ename,pifu_list):length = len(pifu_list)for i in range(1,length+1):img_response = requests.get(url=pifu_url.format(ename,ename,i))# 保存图片with open(pifu_list[i-1]+'.jpg','wb') as fp:fp.write(img_response.content)pass# 定义主函数
def main():ename_lst = get_ename(herolist_url)for ename in ename_lst[0:2]:pifu_list = get_img_href(hero_detail_url.format(ename))download_img(ename,pifu_list)passif __name__ == '__main__':# 定义获取ename的URLherolist_url = 'https://pvp.qq.com/web201605/js/herolist.json'# 定义请求头字典headers = {'User-Agent': '自己网页上的用户代理',}# 定义英雄详情页的URLhero_detail_url = 'https://pvp.qq.com/web201605/herodetail/{}.shtml'# 定义英雄皮肤的URLpifu_url = 'https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{}/{}-bigskin-{}.jpg'main()

为什么要学爬虫---王者荣耀皮肤图片的爬取相关推荐

  1. Python爬虫入门教程11:新版王者荣耀皮肤图片的爬取

    前言

  2. python爬虫------王者荣耀英雄及技能爬取并保存信息到excel

    目录 前言 一.准备工作 二.具体步骤 1.获取王者荣耀官网所有英雄所在页面的网页的源代码 2.获取王者荣耀各个英雄的具体网址 response.textd的部分内容如下 3.提取其中的数据 4.把数 ...

  3. 王者荣耀五周年,爬取102个英雄+326款皮肤,分析上线时间

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于可以叫我才哥 ,作者可以叫我才哥 1.概述 <王者荣耀> ...

  4. python爬虫,g-mark网站图片数据爬取及补坑

    应用python对g-mark网站图片数据爬取,同时但对于数据抓取失败的图片进行补坑(重新爬取操作),由于是日本网站,没有梯子访问的话,特别容易访问超时,比较合适的补坑操作是直接将数据采集到数据库,而 ...

  5. python爬虫网页中的图片_Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片http://pic.s ...

  6. 王者荣耀盒子App数据爬取

    手机app爬虫听起来很高端神秘,但它其实大部分比网页爬虫都简单,因为大部分app都是可以直接抓到包的,少部分app没办法直接获取,需要 wireshark.反编译.脱壳 等方式去查找加密算法,而且ap ...

  7. python玩王者荣耀皮肤_爬取王者荣耀皮肤图片

    [python]代码库import urllib.request import re # 获取主页源码 url = 'https://pvp.qq.com/web201605/herolist.sht ...

  8. Python爬虫入门教程12:英雄联盟皮肤图片的爬取

    前言

  9. 爬虫-某直播平台图片批量爬取url并下载

    后续技术类文档更新到微信公众号-------->>喜欢的扫码关注 import json import time import requests from selenium import ...

最新文章

  1. 异步使用委托delegate --- BeginInvoke和EndInvoke方法
  2. 爱尔兰 APC 微生物组研究所—菌群研究的全球领航者之一
  3. 对象比较:Comparable 和 Comparator
  4. java logback 使用_Java | Logback的使用配置
  5. JPA_@Table 注解详解
  6. [云炬创业基础笔记]第七张创业团队测试9
  7. 一天学完spark的Scala基础语法教程一、基础语法与变量(idea版本)
  8. Python批量替换目录下文件后缀脚本实例
  9. Remastersys制作自己的Linux发行版
  10. 为什么你成长这么慢?
  11. nowcoder 合并回文子串
  12. Servlet面试题
  13. 钉钉云课堂sign计算方式
  14. ConstraintLayout 属性详解 和Chain的使用
  15. 图像修复论文阅读笔记-----Globally and Locally Consistent Image Completion
  16. 浮点数转换为大写货币金额
  17. 全国计算机注册时密码为什么老是错误,电脑密码正确却显示密码错误怎么办
  18. 工具-在WIN10上搭建Ftp服务器(转)
  19. 经典语录 -- 心情down或者hot的时候 来瞅瞅 有新的收获 同时也要留下足迹
  20. IHE那些事儿(1)

热门文章

  1. 关于processing弹弹球
  2. linux下显示其他时区时间
  3. Centos7.5使用本地iso文件创建本地源,实现安装源中已经打包存在的软件
  4. MYSQL数据库中表的进阶玩法——表分区
  5. 简要说明html5工作原理,简要说明PLC的工作原理?
  6. 常用开发、办公工具推荐
  7. 波士顿动力Spot mini,MIT猎豹、宇树科技、蔚蓝等几家公司产品的介绍
  8. UMLet初学者使用步骤
  9. 【汇编语言】贪吃蛇游戏(二)
  10. 如果汉朝有RPA,那么李陵就能枭首10万匈奴,大汉版图扩至地中海