One Piece 海贼王动漫壁纸 Python 爬取!

cbe7c90c2522ccf47df419854468c709.png

我知道没有图片你们是不会看下去的...

日本文化输出非常厉害,比如说动漫,火影忍者的完整让不少人都感叹:“爷青结”,当然还有入土都难以完结的动漫,比如名侦探河南,不对,手抖了,柯南,当然还有下面我们要爬取的动漫壁纸,海贼王ONE PIECE(ワンピース)!

d07c479c4b6c17c87af10ec62a27f8d8.png

01

网站分析

随意百度搜索找的一个网站!

6cb63e46b45a58e6f043aa00c8162e8a.png

目标网址:

https://www.ivsky.com/bizhi/one_piece_t571/

很明显,一个列表页,一共有24个链接,对应的24个图片,可惜只有缩略图!

30d17cef03f17177884fcb7903040642.png

所以,从列表页应该是获取不到大图的图片地址,考虑从内页获取!

继续观察列表页路径地址:

https://www.ivsky.com/bizhi/one_piece_t571/index_2.html

很明显的数字id型列表页,知晓总的列表页数目,就可以构造访问了!

当然需要注意的是,首页的列表页即为入口页,构造访问路径的时候用一个判断处理就可以实现了!

02

代码编写

引用库

import requests,time
from lxml import etree

列表链接源码

92162fc1b0038014ae34344ad364bde1.png

列表链接xpath获取

hrefs=tree.xpath('//ul[@class="il"]/li/div[@class="il_img"]/a/@href')

详情页图片源码

e53ed1d5d9079fc78d0be84185b28cfc.png

详情页图片链接xpath获取

img_url=tree.xpath('//img[@id="imgis"]/@src')[0]

第一版参考:

# one_piece 天堂图片网 图片采集
# https://www.ivsky.com/bizhi/one_piece_t571/index_2.html
# 20211105 by 微信:huguo00289
# -*- coding: UTF-8 -*-
import requests,time
from lxml import etree




def get_imghrefs(url):
    # url = "https://www.ivsky.com/bizhi/one_piece_t571/index_2.html"
    headers={"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
    response=requests.get(url=url,headers=headers,timeout=6)
    print(response.status_code)
    html=response.content.decode('utf-8')
    tree=etree.HTML(html)
    hrefs=tree.xpath('//ul[@class="il"]/li/div[@class="il_img"]/a/@href')
    print(len(hrefs))
    print(hrefs)


    img_hrefs=[]
    for href in hrefs:
        href=f'https://www.ivsky.com{href}'
        img_hrefs.append(href)


    return img_hrefs




def get_img(url):
    #url="https://www.ivsky.com/bizhi/one_piece_v36640/pic_599277.html"
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
    response = requests.get(url=url, headers=headers, timeout=6)
    print(response.status_code)
    html = response.content.decode('utf-8')
    tree = etree.HTML(html)
    img_url=tree.xpath('//img[@id="imgis"]/@src')[0]
    img_url =f'https:{img_url}'
    imgname=img_url.split('/')[-1]
    print(img_url,imgname)
    img=img_url,imgname
    return img




def down_img(img):
    # img_url="https://img-pre.ivsky.com/img/bizhi/pre/201606/21/one_piece-005.jpg"
    # imgname="one_piece-005.jpg"
    img_url=img[0]
    imgname=img[1]
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
    r = requests.get(url=img_url, headers=headers, timeout=6)
    with open(imgname,'wb') as f:
        f.write(r.content)
    print(f">> 下载 {imgname} 图片成功!")






def main():
    url="https://www.ivsky.com/bizhi/one_piece_t571/index_2.html"
    img_hrefs=get_imghrefs(url)
    for img_href in img_hrefs:
        img=get_img(img_href)
        down_img(img)
        time.sleep(1)






if __name__=='__main__':
    main()

第二版 类class 参考:

# one_piece 天堂图片网 图片采集
# https://www.ivsky.com/bizhi/one_piece_t571/index_2.html
# 20211105 by 微信:huguo00289
# -*- coding: UTF-8 -*-
import requests,time,os
from lxml import etree
import threading




class One():
    def __init__(self,url,pagenum):
        self.headers = {
            "user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
        self.url=url
        self.pagenum=pagenum
        pathname=url.split('/')[-2]
        self.path=f'{pathname}/'
        os.makedirs(self.path,True)




    def get_img_herfs(self):
        for page in range(1,self.pagenum+1):
            if page==1:
                url=self.url
            else:
                url=f'{self.url}index_{page}.html'
            self.get_imghrefs(page,url)








    def get_imghrefs(self,page,url):
        print(f">> 正在爬取 第{page}页 链接:{url}")
        response=requests.get(url=url,headers=self.headers,timeout=6)
        html=response.content.decode('utf-8')
        tree=etree.HTML(html)
        hrefs=tree.xpath('//ul[@class="il"]/li/div[@class="il_img"]/a/@href')
        print(len(hrefs))
        print(hrefs)
        self.thread_get_imgs(page,hrefs)






    def thread_get_imgs(self,page,hrefs):
        threadings=[]
        for href in hrefs:
            href=f'https://www.ivsky.com{href}'
            t=threading.Thread(target=self.get_img,args=(href,page))
            threadings.append(t)
            t.start()


        for x in threadings:
            x.join()


        print("多线程下载图片完成")






    def get_img(self,url,page):
        response = requests.get(url=url, headers=self.headers, timeout=6)
        html = response.content.decode('utf-8')
        time.sleep(1)
        tree = etree.HTML(html)
        img_url=tree.xpath('//img[@id="imgis"]/@src')[0]
        img_url =f'https:{img_url}'
        img_name=img_url.split('/')[-1]
        img_name=f'{page}_{img_name}'
        print(img_url,img_name)
        self.down_img(img_url,img_name)






    def down_img(self,img_url,img_name):
        r = requests.get(url=img_url, headers=self.headers, timeout=6)
        with open(f'{self.path}{img_name}','wb') as f:
            f.write(r.content)
        print(f">> 下载 {img_name} 图片成功!")










def main():
    url="https://www.ivsky.com/bizhi/one_piece_t571/"
    pagenum=12
    spider=One(url,pagenum)
    spider.get_img_herfs()






if __name__=='__main__':
    main()

该网站没有反爬,适合新手学习参考,注意设置time.sleep,减轻服务器压力!

9bd4a5dc837ad101e1309ae53dcb28ac.gif

03

附经典语录

1.路飞——我们是伙伴啊!

2.索隆——假如连自己的船长都保护不了,还谈何野心!

3.娜美——在他的心碎掉之前,我想赶快见到他,成为他的力量!

4.乌索普——不在这里全力奋战的话,根本没有资格和他们搭同一艘船,也不可能和他们一样真心的开怀大笑!

5.山治——我从小就被教导不能踢女人,所以就算会没命,我也不能踢女人!

6.弗兰奇——我是已经死过一次的人了,为了让草帽他们活着从这里离开,再死一次我也无所谓!

7.罗宾——我想……我想要活下去!!把我也一起带到海上吧!

8.乔巴——以前我想变成人类,是因为想有同伴,现在我想变成能够帮到路飞的怪物!

9.布鲁克——从今天开始,我的性命交于路飞船长!决不拖大家后腿!粉身碎骨,肝脑涂地!

不妨加入到内容制造者的收割狂欢中..

往期推荐

1939a3d10fedb9caae773f1d606a3eec.png

python微博用户主页小姐姐图片内容采集爬虫

52a641e9e18311a770341387ee3c93b0.png

图片爬虫,手把手教你Python多线程下载获取图片

d646d1feaac4e114a93b219459e7ca64.png

Python解析如何跳转真实下载链接下载文件

4bfb0932dc997438732d4c70a85778c9.png

Python爬虫,B站视频下载源码脚本工具助手附exe

·················END·················

你好,我是二大爷,

革命老区外出进城务工人员,

互联网非早期非专业站长,

喜好python,写作,阅读,英语

不入流程序,自媒体,seo . . .

公众号不挣钱,交个网友。

读者交流群已建立,找到我备注 “交流”,即可获得加入我们~

听说点 “在看” 的都变得更好看呐~

关注关注二大爷呗~给你分享python,写作,阅读的内容噢~

扫一扫下方二维码即可关注我噢~

107a7e613287651c3601e7d38ccd21a5.png

3f13cc3ccedd14d9479b491be3be3d8c.png

关注我的都变秃了

说错了,都变强了!

不信你试试

902dc9bc4eef16f62fc7bc57d32a3e72.png

扫码关注最新动态

公众号ID:eryeji

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的海贼王介绍代码示例,可以作为您的参考: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>海贼王介绍</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <h1>海贼王介绍</h1> </header> <main> <section> <h2>海贼王的故事背景</h2> <p>海贼王是一部由尾田栄一郎所创作的漫画作品。它讲述了主人公路飞成为“海贼王”的故事。在这个世界中,有着各自的梦想和目标的人们搏斗着,成为了“海贼”。他们在广阔的海洋上冒险,寻找着传说中的“ONE PIECE”宝藏,从而成为“海贼王”。</p> </section> <section> <h2>主要角色介绍</h2> <div class="character"> <img src="https://i.imgur.com/2xTtYJd.jpg" alt="路飞"> <h3>蒙其·D·路飞</h3> <p>本故事的主人公,橡胶果实能力者。他的梦想是成为“海贼王”,并且找到传说中的ONE PIECE。</p> </div> <div class="character"> <img src="https://i.imgur.com/4W3tNlY.jpg" alt="索隆"> <h3>罗罗诺亚·索隆</h3> <p>路飞的船员之一,持有三刀流的剑术。他的梦想是成为最强的剑客。</p> </div> <div class="character"> <img src="https://i.imgur.com/5Un7OFX.jpg" alt="娜美"> <h3>娜美</h3> <p>路飞的船员之一,擅长制作地图和盗贼技巧。她的梦想是绘制出整个世界的地图。</p> </div> </section> </main> <footer> <p>版权所有 © 海贼王介绍</p> </footer> </body> </html> ``` 在这份代码中,我们使用了 HTML5 的语义化标签,如 `<header>`、`<main>` 和 `<section>`,以及 CSS3 的一些样式,如 `flex` 布局和圆角边框。在 `<section>` 标签中,我们使用了 `<div>` 元素来展示主要角色的介绍,包括角色头像、姓名和简介。 希望这份代码能够帮助到您,祝您好运!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值