Python爬虫爬取dmzj漫画

废话不多说 下代码

import requests
import re,os
from bs4 import BeautifulSoup
import eventlet
import time

os.makedirs('G:/Gogend',exist_ok=True)
url = "https://m.dmzj.com/info/38541.html"
head = "https://m.dmzj.com/"
headerss = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}

header = {
        'Referer': 'https://manhua.dmzj.com/dogend/',#这个为你要爬取的漫画的目录地址 破除防盗链
        'cookle': 'show_tip_1=0; display_mode=0; pt_198bb240=uid=edOEM6GYeqO4gKBq0KblYg&nid=0&vid=JvLvpalHPJIX-RJtcFWA-A&vn=2&pvn=1&sact=1553756426909&to_flag=1&pl=J8gHIAMoYA2Eg1lD2m4zWQ*pt*1553756146653',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }

def get_page_index(html):
    response = requests.get(html,headers=headerss,verify=False)
    try:
        if response.status_code == 200:
            response.encoding = 'utf-8'
            return response.text
        return None
    except RequestException:
        return None
def save_file(html,contend,name):
    path =name+'/'+os.path.split(html)[1]
    if not os.path.exists(path):
        with open(path,'wb') as f:
                f.write(contend)
        print('下载成功')
def get_page_detail(text):
    soup = BeautifulSoup(text,'lxml')
    title = soup.select('title')[0].get_text()
    print(title)
    f = re.findall(r'"id":(.*?),"comic_id":(.*?),"chapter_name":(.*?),',str(soup))
    if f:
        for i in f:
            html = head+'view/'+i[1]+'/'+i[0]+'.html'
            print(html)
            get_image(html,i[2],i[0])
def get_image_index(html,name):
    time.sleep(1)
    print(html)
    for i in html:
        with eventlet.Timeout(15,False):
            reponse = requests.get(i,headers=header,verify=False)
            if reponse.status_code == 200:
                save_file(i,reponse.content,name)
            else:
                print("Error")
    #     print("超时跳过!")
def get_image(html,name,hd):
    f = get_page_index(html)
    path = 'G:/Gogend/'+eval(name)
    os.makedirs(path,exist_ok=True)
    soup = BeautifulSoup(f,'lxml')
    ff = re.findall(r'mReader.initData\((.*?);',str(soup))
    img = re.findall(r'"(https:.*?)"',ff[0])
    imgs = []
    if img:
        for i in range(len(img)):
            img[i] = img[i].replace('\\/', '/')
            imgs.append(eval(repr(img[i]).replace('\\\\', '\\')))
    print(imgs)
    get_image_index(imgs,path)


if __name__ == '__main__':
    ff = get_page_index(url)
    get_page_detail(ff)


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值