海贼王最新漫画图片_海贼王漫画52pk

海贼王最新漫画图片_海贼王漫画52pk制作工具模块-隐藏身份信息的User-Agent模块;对象服务器识别不了身份信息。importrandomuser_agent_data=[{“User-Agent”:”Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/65.0.3314.0Safari/537.36SE2.XMetaSr1.0″},{“Use


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

制作工具模块

  1. -隐藏身份信息的User-Agent模块;对象服务器识别不了身份信息。
import random
user_agent_data = [
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 QIHU 360SE"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3765.400 QQBrowser/10.6.4153.400"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3765.400 QQBrowser/10.6.4153.400"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.204 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"},
    { 
   
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"},
    { 
   "User-Agent": "Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/77.0"},
]
def get_headers():
    """随机获取报头"""
    index = random.randint(0,len(user_agent_data)-1)
    # print("下标值:",index)
    return user_agent_data[index]
if __name__ == '__main__':
    headers = get_headers()
    print("随机获取UA值:",headers)
  1. 制作一个动态的IP代理池;防止IP被封;可以用的ip代理已存进ippool.json
import json
import random
def get_proxies():
    """随机获取代理池"""
    #读取文件
    rfile = open("./ipfile/ippool.json","r",encoding="utf-8")
    proxy_lists = json.load(rfile)
    rfile.close()
    # print(len(proxy_lists))
    #随机数
    index = random.randint(0,len(proxy_lists)-1)
    return proxy_lists[index]

if __name__ == '__main__':
    proxies = get_proxies()
    print("随机获取ip代理:",proxies)

爬取漫画首页的数据内容

1.http://kanbook.net/328
2.爬取字段标题、页数、herf后缀 并存进到json
在这里插入图片描述
在这里插入图片描述

import requests
import useragenttool
import proxytool
from lxml import etree
import json
import os


class OnePieceSpider(object):
    def __init__(self):
        # 初始化
        self.url = "http://kanbook.net/328"
        self.html_data = None
        self.one_piece_data_list = []

    def get_url_html(self):
        """解析获得网址源代码"""
        headers = useragenttool.get_headers()
        # 添加报头,隐藏身份
        headers["Accept-Encoding"] = "deflate, sdch, br"
        headers["Content-Type"] = "text/html; charset=UTF-8"
        headers["Referer"] = "https://kanbook.net/328/3/1/1"#参考点
        # print(headers)
        # 请求响应
        response = requests.get(url=self.url,
                                headers=headers,
                                proxies=proxytool.get_proxies())
        html_content = response.content.decode("utf-8")
        self.html_data = html_content
        # print(html_content)

    def catch_html_data(self):
        """抓取网址源代码的数据"""
        # 获得etree对象
        data_parse = etree.HTML(self.html_data)
        # print(data_parse)
        li_list = data_parse.xpath("//div[@aria-labelledby='3-tab']/ol/li")
        # print(li_list)
        # 遍历处理,列表倒置
        for li_element in li_list[::-1]:
            # print(li_element)
            # 提取后的链接
            h_name = li_element.xpath("./a/@href")[0]
            # print(h_name)
            title = li_element.xpath("./a/@title")[0]
            # 提取标题
            # print(title)
            # 提取页数
            page = int(li_element.xpath("./a/span/text()")[0][1:4])
            # print(page)
            # 放进字典中
            one_piece_item = { 
   
                "title": title,
                "postfix": h_name,
                "page": page
            }
            # print(one_piece_item)
            self.one_piece_data_list.append(one_piece_item)
        print("添加成功!")

    def save_data_file(self):
        """保存信息"""
        path = "./image_url"
        if not os.path.exists(path):
            os.mkdir(path)
        file = open(path + "/one_piece_data.json", "w", encoding="utf-8")
        json.dump(self.one_piece_data_list, file, ensure_ascii=False, indent=2)
        file.close()
        print("数据保存成功!")

    def run(self):
        # 启动程序
        self.get_url_html()
        # print(html_content)
        self.catch_html_data()
        self.save_data_file()
        # print(self.one_piece_data_list)


def main():
    spider = OnePieceSpider()
    spider.run()

开始爬取海贼王全部的全彩漫画图片

-注意点:报头要添加referer参考页,选择漫画本站
此外循环(while True)为了让全部卷图片都能下载成功,成功下载就跳出循环

import requests
import useragenttool
import proxytool
import time
import random
import json
import os
import re
import urllib3
urllib3.disable_warnings()


class OnePieceImageSpider(object):
    def __init__(self):
        # 初始化
        self.url = ""

    def set_url(self, out_url):
        """设置网络地址"""
        self.url = out_url

    def get_url_list(self, num):
        """获取num页网址"""
        url_list = []
        # 拼接网址,获得列表
        for page in range(1, num+1):
            new_url = self.url.format(page)
            url_list.append(new_url)
        return url_list

    def get_url_html(self, inner_url):
        """解析获得网址源代码"""
        headers = useragenttool.get_headers()
        headers["Accept-Encoding"] = "deflate, sdch, br"
        headers["Content-Type"] = "text/html; charset=UTF-8"
        headers["Referer"] = "https://kanbook.net/328/3/6"#参照页
        # print(headers)
        response = requests.get(url=inner_url,
                                headers=headers,
                                proxies=proxytool.get_proxies(),
                                timeout=30,
                                verify=False)
        # 动态限制爬取网页源代码时间
        wait_time = random.randint(1, 6)
        time.sleep(wait_time)
        html_content = response.content
        # print(html_content)
        return html_content

    def __download_image(self, image_url, name, index):
        """ 下载图片 :param image_url: 图片地址 :param name: 文件名字 :param index: 图片数字 :return: """
        while True:
            try:
                if len(image_url) == 0:
                    break
                content = self.get_url_html(image_url)
                path = "./onepieceimage/%s" % name
                if not os.path.exists(path):
                    os.mkdir(path)
                with open(path + "/%d.jpg" % index, "wb") as wfile:
                    wfile.write(content)
                break
            except Exception as msg:
                print("出现异常,错误信息为", msg)
    # 启动程序

    def run(self,url_list, title):
        # print(url_list)
        # 遍历处理,获得html
        index = 2
        for url in url_list:
            while True:
                try:
                    # print(url)
                    data = self.get_url_html(url).decode("utf-8")
                    # print(data)
                    regex = r"""var img_list=(\[.+])"""
                    result = re.findall(regex, data)
                    # print(type(result[0]))
                    # 转换列表
                    lists = json.loads(result[0])
                    # print(lists)
                    img_url = lists[0]
                    print(img_url)
                    break
                except Exception as msg:
                    print("错误信息:",msg)
            self.__download_image(img_url, title, index)
            print("第%d张下载" % index)
            index += 1
        print("所有图片下载成功")


def main():
    # 提取文件
    read_file = open("./image_url/one_piece_data.json","r",encoding="utf-8")
    one_piece_data = json.load(read_file)
    read_file.close()
    # 遍历处理,提取字典数据
    for element in one_piece_data:
        # print(element)
        # 海贼王地址、页数、标题
        href_name = element["postfix"]
        number = element["page"]
        name = element["title"]
        # 拼接网址
        http_url = "http://kanbook.net"+href_name+"/{}"
        # print(http_url)
        onepieceimgspider = OnePieceImageSpider()
        onepieceimgspider.set_url(http_url)
        print("%s开始下载!" % name)
        url_list = onepiecespider.get_url_list(number)
        # print(url_list)
        # 获得每页的url列表
        onepieceimgspider.run(url_list, name)

if __name__ == '__main__':
    main()

保存的格式:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172277.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Latex插入图片却不显示问题小结

    Latex插入图片却不显示问题小结1、首先检查有没有导入宏包\usepackage{graphicx}2、检查图片路径有无问题3、可以尝试将Tex的同名文件删除,重新编译生成4、若是文章分栏\begin{multicols}{2}那是因为multicols环境不能识别figure环境,重新定义一个环境即可\newenvironment{figurehere}{\def\@captype{figure}}{}\makeatother%用于连接公式编号在文中,用figureher

    2022年5月11日
  • 分别用N-S图和PAD表示下面的程序流程图_程序流程图,n-s图和pad图是

    分别用N-S图和PAD表示下面的程序流程图_程序流程图,n-s图和pad图是例题:某程序流程图如右图所示,请分别用 N-S图和PAD图表示。PAD图:N-S:盒图2.计算n阶乘的程序N-S图,PAD图

    2022年8月13日
  • MySQL与PostgreSQL比较 哪个数据库更好

    MySQL与PostgreSQL比较 哪个数据库更好

    2021年10月29日
  • 带通滤波器幅频特性曲线图_滤波器和对讲机技术解析!「建议收藏」

    带通滤波器幅频特性曲线图_滤波器和对讲机技术解析!「建议收藏」滤波器是一种选频装置,可以使对讲机信号中特定的频率成分通过,而极大地衰减其它频率成分。但是关于滤波器是什么,估计非专业人士肯定是一头雾水,今天小编就整理了一些滤波器的知识,供大家参考:一、概述1、定义凡是可以使信号中特定的频率成分通过,而极大地衰减或抑制其他频率成分的装置或系统都称之为滤波器,相当于频率“筛子”。2、分类幅频特性如下:频率通带:能通过滤波器的频率范围。频率阻带:被滤波器抑…

    2022年5月31日
  • es6模板字符串_js循环字符串

    es6模板字符串_js循环字符串相比ES5的拼接字符串,ES6毫无疑问是简单明了,又清晰可维护。原始的字符串拼接真的是把整个人都拼傻,并且在处理的过程中会出现很多小坑,小问题。$(‘#ulList’).html(`<ul><li>浙江</li><li>杭州</li></ul>`);上面就是用es6的…

    2022年8月21日
  • 女生学java_女生到底适不适合学Java-Fun言

    女生学java_女生到底适不适合学Java-Fun言随着女性越来越独立,我们可以看到再以前我们认为不适合女性朋友从事的工作,也出现了越来越多的女生,例如对IT行业也不再跟之前一样畏惧。虽然当下很多人所持的观点依旧是,女生不适合IT行业,但是很多女生已经在IT行业中崭露头角,成为IT行业中的中坚力量。越来越多的女生有志于从事IT行业,很多女生选择学Java,那么女生学习Java到底有没有优势呢?怎么说呢,女生学习Java有时候比男生更占优势!具体表现…

    2022年7月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号