Python爬取QQ漫画前三章图片数据并按章节保存
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 著作权归作者所有。请勿转载和采集!