当前位置:   article > 正文

从零开始学习Python在e站上下载蕾姆的本子_e-hentai

e-hentai

从零开始学习Python在e站上下载蕾姆的本子


郑重说明:
1. 本文仅仅只是Python技术应用的实践和探讨,本人绝不提供和传递任何违背国家相关法律的视频、音频及图像资料。
2. 本人也是刚刚开始接触Python,所以存在很多可以改进的地方,例如并没有采取多线程,没有做内存优化什么的,我会在之后的学习中会慢慢完善。
3. 有动力才能好好学习/滑稽

正文开始

首先看一下最终效果 /捂脸/捂脸(广大蕾姆党不要来打我)
这里写图片描述

准备材料:电脑(科学上网)

  1. Python环境搭建

    先给大家介绍一下需要下载的工具:
    Python 2.7:纵观市面上Python2版本的视频资料教程还是比Python3多的,所以作为初学者,我还是使用Python2啦
    Python IDE:Pycharm5(其他IDE类似sublime,eclipse当然也可以啦)
    第三方插件:pip,requests, BeautifulSoup4.

    python安装和环境变量设置:
    http://www.runoob.com/python/python-install.html
    pip安装和使用pip安装其他插件:
    http://blog.csdn.net/olanlanxiari/article/details/48086917

过程解释

打开e站,查看源代码,我们可以看见
这里写图片描述

<a href="https://e-hentai.org/lofi/g/1004996/aa63985f71/">
<img src="https://ehgt.org/t/fc/6c/fc6c98c73c1f6d096967196e9bbb9e0435a1f0b1-485435-1000-1421-jpg_l.jpg" alt="Cover Image">
</a>
  • 1
  • 2
  • 3

https://e-hentai.org/lofi/g/1004996/aa63985f71/ 是漫画的地址
https://ehgt.org/t/fc/6c/fc6c98c73c1f6d096967196e9bbb9e0435a1f0b1-485435-1000-1421-jpg_l.jpg这个是经过压缩之后的图片地址(一脸嫌弃)
因此我们进入漫画的地址

进入漫画地址后,再去查看源代码时,左图第一张图片对应的是右侧的代码
列表内容

<a href="https://e-hentai.org/lofi/s/fc6c98c73c/1004996-1" rel="nofollow">
<img src="https://ehgt.org/t/fc/6c/fc6c98c73c1f6d096967196e9bbb9e0435a1f0b1-485435-1000-1421-jpg_l.jpg">
</a>
  • 1
  • 2
  • 3

https://ehgt.org/t/fc/6c/fc6c98c73c1f6d096967196e9bbb9e0435a1f0b1-485435-1000-1421-jpg_l.jpg是缩略图的jpg(继续一脸嫌弃)

为了取得最好的观看效果,我们取前面的具有特征值rel=”nofollow”的地址,点击进去之后可以看见
这里写图片描述
我们在右侧发现了高清无码图片的存储地址

<img id="sm" src="http://125.143.18.117:56133/h/fbdb1dfcf1acde845490021f07e89a15e2625e46-124648-780-1108-jpg/keystamp=1486713900-0ab46e6f81;fileindex=49878524;xres=780/_1_ver2_copy.jpg" alt="_1_ver2_copy.jpg" 
title="_1_ver2_copy.jpg" referrerpolicy="no-referrer" onerror="this.onerror=null; document.location=document.location+'?nl=1-412975'" onload="document.cookie = 'reload=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;'">
  • 1
  • 2

id=”sm” src=”http://125.143.18.117:56133/h/fbdb1dfcf1acde845490021f07e89a15e2625e46-124648-780-1108-jpg/keystamp=1486713900-0ab46e6f81;fileindex=49878524;xres=780/_1_ver2_copy.jpg”
特征id = “sm”, 后面附带图片地址,这个就是我们想要的!

所以,总结一下过程,目的是找蕾姆(误)non-H的本子,所以我们要在总目录页找到每一个漫画的地址(url),然后在每个漫画中遍历查找每一张高清无码图片的地址(url),之后通过爬虫技术把一张张图片拷贝进自己硬盘里。

# -*- coding: UTF-8 -*-
import os
import urllib
import urllib2
import requests as req
from bs4 import BeautifulSoup
import re

def next_page(page_link):
    """
    检测有无next page
    :param page_link: url
    :return: nextpage exist => 1
              nextpage exist => 0
    """
    content= get_content(page_link)
    if (content.find('Next Page'))!=-1:
        return 1
    else:
        return 0

def get_content(url):
    """
    得到content信息
    :param url:
    :return: content
    """
    req = urllib2.Request(url)
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36")
    req.add_header("Host","e-hentai.org")
    req.add_header("Referer","https://e-hentai.org/lofi")
    html = urllib.urlopen(url)
    content=html.read()
    html.close()
    return content

def get_images(page_link,temp):
    """
    导入每一张漫画的url
    :param page_link: url
    :param temp: 地temp篇漫画
    :return:
    """
    if next_page(page_link)!=0:
        info = get_content(page_link)
        soup = BeautifulSoup(info)
        all_img = soup.find_all(rel="nofollow")
        #for img in all_img:
        #    print img['href']
        i=1
        new_url = page_link +'%d'%i
        while (next_page(new_url))!=0:
            info = get_content(new_url)
            soup = BeautifulSoup(info)
            all_img_new = soup.find_all(rel="nofollow")
            all_img = all_img + all_img_new
            i+=1
            new_url = page_link +'%d'%i
            print new_url
    else:
        new_url=page_link

    info = get_content(new_url)
    soup = BeautifulSoup(info)
    all_img_new = soup.find_all(rel="nofollow")
    all_img = all_img + all_img_new

    title = '蕾姆%s'%temp
    x=0
    os.mkdir(r'E:\python\program\shenshi0210\%s'%title)
    for img_url in all_img:
        print img_url['href']
        print x
        download(img_url['href'],x,title)
        x=x+1
    return


def download(img_url,x,title):
    """
    下载漫画
    :param img_url: url
    :param x: 张数
    :param title: 存入磁盘的位置
    :return: 
    """
    info = get_content(img_url)
    soup = BeautifulSoup(info)
    img_real = soup.find_all('img', id="sm")
    print img_real[0]['src']
    img_name=x
    path= os.path.join('E:\\python\\program\\shenshi0210\\%s'%title,'%s.jpg'%x)
    urllib.urlretrieve(img_real[0]['src'],path)

def mulu_url(page_link):
    """
    导入总目录页面所有漫画的url
    """
    info_mulu = get_content(page_link)
    soup_mulu = BeautifulSoup(info_mulu)
    mulu_url = soup_mulu.find_all("a",{"class":"b"})
    temp=0
    for x in range(1,len(mulu_url)-1):
        print mulu_url[temp]['href']
        temp+=1
        get_images(mulu_url[temp]['href'],temp)
    return mulu_url[temp]['href']

origin_page_link= 'https://e-hentai.org/lofi/?f_search=ram&f_apply=Search'
mulu_url(origin_page_link)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111

后记

Python真是博大精深!

最开始是准备用Python做数据分析的,然后不知不觉就入了爬虫的坑,当然这个程序也有太多太多不足,比如没有做多线程,速度实在太慢,变量的使用太过于随心所欲了,还有内存没有优化,跑起来速度真心有点慢。

大佬们请尽管做出批评的意见和建议,小弟在接下来的几个月会开始系统的正式学习Python,同为新萌的小伙伴们有空来我博客里玩耍吧!

接下来每两周会更新一次学习进展,大家一起加油!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/59442
推荐阅读
相关标签
  

闽ICP备14008679号