python爬虫实例之获取动漫截图


Posted in Python onMay 31, 2020

引言

之前有些无聊(呆在家里实在玩的腻了),然后就去B站看了一些python爬虫视频,没有进行基础的理论学习,也就是直接开始实战,感觉跟背公式一样的进行爬虫,也算行吧,至少还能爬一些东西,hhh。我今天来分享一个我的爬虫代码。

正文

话不多说,直接上完整代码

ps:这个代码有些问题 每次我爬到fate的图片它就给我报错,我只好用个try来跳过了,如果有哪位大佬能帮我找出错误并给与纠正,我将不胜感激

import requests as r
import re
import os
import time
file_name = "动漫截图"
if not os.path.exists(file_name):
 os.mkdir(file_name)
    
for p in range(1,34):
  print("--------------------正在爬取第{}页内容------------------".format(p))
  url = 'https://www.acgimage.com/shot/recommend?page={}'.format(p)
  headers = {"user-agent"
   : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36"}
   
  resp = r.get(url, headers=headers) 
  html = resp.text

  images = re.findall('data-original="(.*?)" ', html)
  names =re.findall('title="(.*?)"', html)
  #print(images)
  #print(names)
  dic = dict(zip(images, names))
  for image in images:
    time.sleep(1)
    print(image, dic[image])
    name = dic[image]
    #name = image.split('/')[-1]
    i = r.get(image, headers=headers).content
    try:
      with open(file_name + '/' + name + '.jpg' , 'wb') as f:
       f.write(i)
    except FileNotFoundError:
     continue

先导入要使用的库

import requests as r
import re
import os
import time

然后去分析要去爬的网址: https://www.acgimage.com/shot/recommend

下图是网址的内容:

python爬虫实例之获取动漫截图

好了 url已经确定

下面去寻找headers

python爬虫实例之获取动漫截图

找到user-agent 将其内容复制到headers中

第一步就完成了

下面是代码展示

url = 'https://www.acgimage.com/shot/recommend?page={}'.format(p)
headers = {"user-agent"
   : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36"
   }

然后检索要爬的图片内容

python爬虫实例之获取动漫截图

从上图就可以找到图片的位置:data-origina=后面的内容
以及图片的名字:title=后面的内容

然后用正则表达式re来检索就行了

images = re.findall('data-original="(.*?)" ', html)
names =re.findall('title="(.*?)"', html)

最后将其保存就好了

i = r.get(image, headers=headers).content
with open(file_name + '/' + name + '.jpg' , 'wb') as f:
     f.write(i)

还有就是一些细节了

比如换页

第一页网址:

https://www.acgimage.com/shot/recommend

第二页网址:https://www.acgimage.com/shot/recommend?page=2

然后将page后面的数字改动就可以跳到相应的页面

换页的问题也就解决了

or p in range(1,34):
    url = 'https://www.acgimage.com/shot/recommend?page={}'.format(p)

以及将爬到的图片放到自己建立的文件zh

使用了os库

file_name = "动漫截图"
 if not os.path.exists(file_name):
   os.mkdir(file_name)

以及为了不影响爬取的网站 使用了sleep函数

虽然爬取的速度慢了一些

但是这是应遵守的道德

time.sleep(1)

以上 这就是我的爬虫过程

还是希望大佬能解决我的错误之处

万分感谢

总结

到此这篇关于python爬虫实例之获取动漫截图的文章就介绍到这了,更多相关python爬虫获取动漫截图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python通过线程实现定时器timer的方法
Mar 16 Python
python使用append合并两个数组的方法
Apr 28 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python去除文件中重复的行实例
Jun 29 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
python函数的万能参数传参详解
Jul 26 Python
Python中的相关分析correlation analysis的实现
Aug 29 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
TensorFlow实现从txt文件读取数据
Feb 05 Python
Python docutils文档编译过程方法解析
Jun 23 Python
如何利用Python识别图片中的文字
May 31 #Python
Python模拟登入的N种方式(建议收藏)
May 31 #Python
Python多线程正确用法实例解析
May 30 #Python
PyQt5实现简单的计算器
May 30 #Python
PyQt5实现登录页面
May 30 #Python
Python网页解析器使用实例详解
May 30 #Python
PyQt5实现画布小程序
May 30 #Python
You might like
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
php单件模式结合命令链模式使用说明
2008/09/07 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
Python代码调试的几种方法总结
2015/04/15 Python
Python闭包实现计数器的方法
2015/05/05 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
自主招生自荐信格式
2013/12/03 职场文书
毕业留言寄语大全
2014/04/10 职场文书
晚会闭幕词
2015/01/28 职场文书
行政前台岗位职责
2015/04/16 职场文书
简爱电影观后感
2015/06/10 职场文书
六年级作文之关于梦
2019/10/22 职场文书