import os
import time
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 设置请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
    'Referer': 'https://ac.qq.com/Comic/ComicInfo/id/651263',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Connection': 'keep-alive',
}

# 设置webdriver
chrome_options = Options()
chrome_options.add_argument('--headless')  # 无头模式
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.implicitly_wait(10)  # 隐式等待10秒

# 爬取前3章图片
for chapter in range(1, 4):
    # 获取章节名称
    driver.get(f'https://ac.qq.com/ComicView/index/id/651263/cid/{chapter}')
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    chapter_name = soup.select_one('.works-ft > h2').text.strip()
    print(f'开始爬取第{chapter}章:{chapter_name}')

    # 获取图片链接
    page = 1
    while True:
        url = f'https://ac.qq.com/ComicView/index/id/651263/cid/{chapter}/page/{page}'
        driver.get(url)
        soup = BeautifulSoup(driver.page_source, 'html.parser')
        img = soup.select_one('.comic-contain > img')
        if img:
            img_url = img['src']
            print(f'正在下载第{page}页:{img_url}')
            response = requests.get(img_url, headers=headers)
            # 创建目录和文件
            folder_name = f'chapter{chapter}'
            if not os.path.exists(folder_name):
                os.mkdir(folder_name)
            file_name = f'{page}.jpg'
            with open(os.path.join(folder_name, file_name), 'wb') as f:
                f.write(response.content)
            page += 1
        else:
            break

# 关闭浏览器
driver.quit()

print('所有图片下载完成!')

该代码使用Python的requests和beautifulsoup库,结合webdriver模拟浏览器,爬取QQ漫画(https://ac.qq.com/Comic/ComicInfo/id/651263)前三章的图片数据,并将图片按章节名称和网页顺序保存在不同文件夹中。

代码使用webdriver模拟浏览器加载动态网页,并通过beautifulsoup解析网页内容,获取图片链接。最后使用requests库下载图片并保存到指定文件夹。

需要注意的是,爬取网站数据需要遵守网站的Robots协议,避免对网站造成过大的负荷。同时,请勿将爬取的数据用于商业用途。


原文地址: https://www.cveoy.top/t/topic/oXQn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录