鱼C论坛

 找回密码
 立即注册
查看: 2551|回复: 15

[作品展示] [分享]爬取漫画,多线程的爬虫

[复制链接]
发表于 2020-4-14 09:03:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 六小鸭 于 2020-4-14 09:11 编辑

我不是原创,然后我也找不到原来的链接了
直接上代码
import requests
from urllib import parse
from bs4 import BeautifulSoup
import threading
import os
import sys

_name=input('请输入你想看的漫画:')

try:
    os.mkdir('./{}'.format(_name))
except:
    print('已经存在相同的文件夹了,程序无法在继续进行!')
    sys.exit()

name_=parse.urlencode({'keyword':_name})
url='https://www.mkzhan.com/search/?{}'.format(name_)
html=requests.get(url=url)
content=html.text
soup=BeautifulSoup(content,'lxml')
list1=soup.select('div.common-comic-item')
names=[]
hrefs=[]
keywords=[]
for str1 in list1:
    names.append(str1.select('p.comic__title>a')[0].get_text())   # 匹配到的漫画名称
    hrefs.append(str1.select('p.comic__title>a')[0]['href'])      # 漫画的网址
    keywords.append(str1.select('p.comic-feature')[0].get_text())          # 漫画的主题
print('匹配到的结果如下:')
for i in range(len(names)):
    print('【{}】-{}     {}'.format(i+1,names[i],keywords[i]))

i=int(input('请输入你想看的漫画序号:'))
print('你选择的是{}'.format(names[i-1]))


url1='https://www.mkzhan.com'+hrefs[i-1]      # 漫画的链接
html1=requests.get(url=url1)
content1=html1.text
soup1=BeautifulSoup(content1,'lxml')
str2=soup1.select('ul.chapter__list-box.clearfix.hide')[0]
list2=str2.select('li>a')
name1=[]
href1=[]
for str3 in list2:
    href1.append(str3['data-hreflink'])   # 漫画一章的链接
    name1.append(str3.get_text().strip()) # 漫画一章的题目,去空格

def Downlad(href1,path):
    headers = {
        '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.3756.400 QQBrowser/10.5.4039.400'}
    url2='https://www.mkzhan.com'+href1
    html2=requests.get(url=url2,headers=headers)
    content2=html2.text
    soup2=BeautifulSoup(content2,'lxml')
    list_1=soup2.select('div.rd-article__pic.hide>img.lazy-read')  # 漫画一章中的所有内容列表
    urls=[]
    for str_1 in list_1:
        urls.append(str_1['data-src'])

    for i in range(len(urls)):
        url=urls[i]
        content3=requests.get(url=url,headers=headers)
        with open(file=path+'/{}.jpg'.format(i+1),mode='wb') as f:
            f.write(content3.content)
    return True


def Main_Downlad(href1:list,name1:list):
    while True:
        if len(href1)==0:
            break
        href=href1.pop()
        name=name1.pop()
        try:
            path='./{}/{}'.format(_name,name)
            os.mkdir(path=path)
            if Downlad(href, path):
                print('线程{}正在下载章节{}'.format(threading.current_thread().getName(),name))
        except:
            pass

threading_1=[]
for i in range(30):
    threading1=threading.Thread(target=Main_Downlad,args=(href1,name1,))
    threading1.start()
    threading_1.append(threading1)
for i in threading_1:
    i.join()
print('当前线程为{}'.format(threading.current_thread().getName()))
下载是真心快
记得评分@一个账号 @编程鱼C
捕获.PNG

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
编程鱼C + 1 + 1 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-14 09:09:28 | 显示全部楼层
不错有我当年的风范
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-14 09:12:38 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-14 09:13:47 | 显示全部楼层
你的回复在审核,我看不到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-14 09:51:24 | 显示全部楼层
斗破苍穹???!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-14 10:31:20 | 显示全部楼层
斗破苍穹到840话怎么不动了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-14 10:38:03 | 显示全部楼层
乘号 发表于 2020-4-14 10:31
斗破苍穹到840话怎么不动了

应该是完了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-14 10:40:21 | 显示全部楼层
乘号 发表于 2020-4-14 10:31
斗破苍穹到840话怎么不动了

一共840话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-14 10:51:49 | 显示全部楼层

肿么可冷
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-14 11:28:52 | 显示全部楼层


真的
我爬的漫客斋
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-14 11:29:51 | 显示全部楼层

我这么好的爬虫为什么没人看呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 17:21:47 | 显示全部楼层
为什么我用不了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 17:24:03 | 显示全部楼层

没下载第三方库
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-18 15:18:52 | 显示全部楼层
输入漫画编号为什么有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-7 19:36:48 | 显示全部楼层
Traceback (most recent call last):
  File "E:/Python小程序/漫画爬取.py", line 20, in <module>
    soup=BeautifulSoup(content,'lxml')
  File "D:\电脑软件\Python38\lib\site-packages\bs4\__init__.py", line 243, in __init__
    raise FeatureNotFound(
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?
大佬这怎么搞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-8 02:05:53 | 显示全部楼层
小小怪士兵 发表于 2020-10-7 19:36
Traceback (most recent call last):
  File "E:/Python小程序/漫画爬取.py", line 20, in
    soup=Bea ...

安装个html解析器
pip3 install lxml
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 10:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表