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

引言

之前有些无聊(呆在家里实在玩的腻了),然后就去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

下图是网址的内容:

好了 url已经确定

下面去寻找headers

找到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"
   }

然后检索要爬的图片内容

从上图就可以找到图片的位置: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爬虫获取动漫截图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python抓取网页图片示例(python爬虫)

    复制代码 代码如下: #-*- encoding: utf-8 -*-'''Created on 2014-4-24 @author: Leon Wong''' import urllib2import urllibimport reimport timeimport osimport uuid #获取二级页面urldef findUrl2(html):    re1 = r'http://tuchong.com/\d+/\d+/|http://\w+(?<!photos).tuchong.co

  • 零基础写python爬虫之使用urllib2组件抓取网页内容

    版本号:Python2.7.5,Python3改动较大,各位另寻教程. 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地.  类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端, 然后读取服务器端的响应资源. 在Python中,我们使用urllib2这个组件来抓取网页. urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件. 它以urlopen函数的形式提供了一个非常简单的接口. 最简

  • Python爬虫模拟登录带验证码网站

    爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 首先得明白cookie的作用,cookie是某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据.因此我们需要用Cookielib模块来保持网站的cookie. 这个是要登陆的地址 http://202.115.80.153/ 和验证码地址 http://202.115.80.153/CheckCode.

  • Python爬虫框架Scrapy安装使用步骤

    一.爬虫框架Scarpy简介Scrapy 是一个快速的高层次的屏幕抓取和网页爬虫框架,爬取网站,从网站页面得到结构化的数据,它有着广泛的用途,从数据挖掘到监测和自动测试,Scrapy完全用Python实现,完全开源,代码托管在Github上,可运行在Linux,Windows,Mac和BSD平台上,基于Twisted的异步网络库来处理网络通讯,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片. 二.Scrapy安装指南 我们的安装步骤假设你已经安装一下内容:<1>

  • 零基础写python爬虫之使用Scrapy框架编写爬虫

    网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Item

  • Python实现抓取页面上链接的简单爬虫分享

    除了C/C++以外,我也接触过不少流行的语言,PHP.java.javascript.python,其中python可以说是操作起来最方便,缺点最少的语言了. 前几天想写爬虫,后来跟朋友商量了一下,决定过几天再一起写.爬虫里重要的一部分是抓取页面中的链接,我在这里简单的实现一下. 首先我们需要用到一个开源的模块,requests.这不是python自带的模块,需要从网上下载.解压与安装: 复制代码 代码如下: $ curl -OL https://github.com/kennethreitz/

  • 使用Python编写简单网络爬虫抓取视频下载资源

    我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚本语言,没有之一.Python的语言简洁灵活,标准库功能强大,平常可以用作计算器,文本编码转换,图片处理,批量下载,批量处理文本等.总之我很喜欢,也越用越上手,这么好用的一个工具,一般人我不告诉他... 因为其强大的字符串处理能力,以及urllib2,cookielib,re,threading这些

  • 零基础写python爬虫之爬虫编写全记录

    先来说一下我们学校的网站: http://jwxt.sdu.edu.cn:7777/zhxt_bks/zhxt_bks.html 查询成绩需要登录,然后显示各学科成绩,但是只显示成绩而没有绩点,也就是加权平均分. 显然这样手动计算绩点是一件非常麻烦的事情.所以我们可以用python做一个爬虫来解决这个问题. 1.决战前夜 先来准备一下工具:HttpFox插件. 这是一款http协议分析插件,分析页面请求和响应的时间.内容.以及浏览器用到的COOKIE等. 以我为例,安装在火狐上即可,效果如图:

  • 零基础写python爬虫之HTTP异常处理

    先来说一说HTTP的异常处理问题. 当urlopen不能够处理一个response时,产生urlError. 不过通常的Python APIs异常如ValueError,TypeError等也会同时产生. HTTPError是urlError的子类,通常在特定HTTP URLs中产生. 1.URLError 通常,URLError在没有网络连接(没有路由到特定服务器),或者服务器不存在的情况下产生. 这种情况下,异常同样会带有"reason"属性,它是一个tuple(可以理解为不可变的

  • python模拟新浪微博登陆功能(新浪微博爬虫)

    1.主函数(WeiboMain.py): 复制代码 代码如下: import urllib2import cookielib import WeiboEncodeimport WeiboSearch if __name__ == '__main__':    weiboLogin = WeiboLogin('×××@gmail.com', '××××')#邮箱(账号).密码    if weiboLogin.Login() == True:        print "登陆成功!" 前

随机推荐