当前位置:首页>python>python爬虫之漫客栈

python爬虫之漫客栈

  • 2026-09-10 16:51:12
python爬虫之漫客栈

python爬虫篇

今天来讲一下python的爬虫篇,所谓爬虫就是从网站爬数据。

废话不多说,直接上案例

爬取漫客栈的漫画,并将漫画中的免费章节的漫画下载到本地文件夹

我下载的是都市之逆天仙尊

期望效果

1.首先,请输入想要爬的漫画id,id从地址栏获取

2.让用户输入漫画id

textid = input("请输入小说id")

3.输入以后获取页面所在地址,这里需要用到两个插件,一个是request,一个是lxml

import requestsfrom lxml import html

重点代码

1.获取网站的响应

  response = requests.get(base_url + f'/{textid}/')

2.获取页面整体的document

        document = html.fromstring(response.text)

3.因为章节都是在页面上,所以我们通过f12获取章节所在的div

list = document.xpath("//ul[@class='chapter__list-box clearfix hide']/li")

4.将li进行遍历,取出所有的章节名称和章节id,放进一个数组

for item in list:            name = item.xpath("./a/text()")if (len(name) == 2):                textlist.append(                    name[1].replace("                                                                  ", "").replace("                    ", ""))else:                textlist.append(name[0].replace('\n                                                                                        ','').replace("                    ", ""))            href = item.xpath("./a/@data-chapterid")print(href)            hreflist.append(href[0])        hreflist.reverse()        textlist.reverse()

5.获取漫画名称

 title=document.xpath("//p[@class='comic-title j-comic-title']/text()")

6.判断文件夹是否存在,不存在则新建

result = os.path.exists(f'{title}')if (result == False):            os.mkdir(f"{title}")

7.对两个数组textlist,hreflist,进行循环,建出每个章节对应的文件夹

for text, href in zip(textlist, hreflist):print(text, href)            result = os.path.exists(f'{title}/' + text)print(result)if (result == False):                os.mkdir(f'{title}/' + text)

8.下载图片,因为漫画图片是pdf,所以我们通过接口下载就可以了。302说明用户没有登录,所以我们不下载vip的章节

def addimage(textid,text,href,title):print(text)    response = requests.get(f"https://comic.mkzcdn.com/chapter/content/v1/?chapter_id={href}&comic_id={textid}&format=1&quality=1&type=1")    obj = json.loads(response.text)print(obj)if (obj['code'] != "302"):        list = obj['data']['page']for image in list:            url = image['image']print(url)            responses = requests.get(url)            with open(f"{title}/" + text + '/' + url[-10:] + ".jpg", 'wb') as file:                file.write(responses.content)

结果

总结一下,这个案例用的知识点是文件操作,代码不算复杂,只要掌握了基础就能做出来

接下来会继续更新爬虫案例

需要了解服务器和域名的购买以及返佣政策的可以找我,我有朋友做这方面对这些比较了解。
需要源码联系
需要源码可以加群,第一个是微信群,第二个是QQ群
微信群
第一个群:只讨论java+vue的项目,学历提升和卖服务器的就别进了,进了也会被踢。
第二个群:只讨论python项目,以后python的代码和教程会在群里开源,学历提升和卖服务器的就别进了,进了也会被踢。
QQ群

最新文章

随机文章