爬取动漫之家:妖神记
分析:
<ul class="list_con_li autoHeight">
<li>
<a href="https://www.dmzj.com/view/yaoshenji/76532.html" target="_blank" title="妖神记第174话 回归(下) 2018-05-26">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第174话 回归(下)
<span class="new">
</span>
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/76439.html" target="_blank" title="妖神记第174话 回归(上) 2018-05-23">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第174话 回归(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/76280.html" target="_blank" title="妖神记第173话 何处是故乡(下) 2018-05-19">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第173话 何处是故乡(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/76154.html" target="_blank" title="妖神记第173话 何处是故乡(上) 2018-05-16">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第173话 何处是故乡(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/76056.html" target="_blank" title="妖神记第172话 段剑VS司空红月(下) 2018-05-12">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第172话 段剑VS司空红月(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/75700.html" target="_blank" title="妖神记第172话 段剑VS司空红月(上) 2018-05-02">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第172话 段剑VS司空红月(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/75701.html" target="_blank" title="妖神记第171话 如狼似虎的女人(下) 2018-05-02">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第171话 如狼似虎的女人(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/75414.html" target="_blank" title="妖神记第171话 如狼似虎的女人(上) 2018-04-25">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第171话 如狼似虎的女人(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/75287.html" target="_blank" title="妖神记第170话 放烟花(下) 2018-04-21">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第170话 放烟花(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/75069.html" target="_blank" title="妖神记第170话 放烟花(上) 2018-04-18">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第170话 放烟花(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/74990.html" target="_blank" title="妖神记第169话 爆爆爆炸!(下) 2018-04-14">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第169话 爆爆爆炸!(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/74810.html" target="_blank" title="妖神记第169话 爆爆爆炸!(上) 2018-04-11">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第169话 爆爆爆炸!(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/74601.html" target="_blank" title="妖神记第168话 烟火(下) 2018-04-07">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第168话 烟火(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/74503.html" target="_blank" title="妖神记第168话 烟火(上) 2018-04-04">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第168话 烟火(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/74338.html" target="_blank" title="妖神记第167话 铭文的秘密(下) 2018-03-31">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第167话 铭文的秘密(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/74275.html" target="_blank" title="妖神记第167话 铭文的秘密(上) 2018-03-28">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第167话 铭文的秘密(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/74147.html" target="_blank" title="妖神记第166话 飞刀(下) 2018-03-24">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第166话 飞刀(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/73930.html" target="_blank" title="妖神记第166话 飞刀(上) 2018-03-21">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第166话 飞刀(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/73767.html" target="_blank" title="妖神记第165话 黑炎剑(下) 2018-03-17">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第165话 黑炎剑(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/73663.html" target="_blank" title="妖神记第165话 黑炎剑(上) 2018-03-14">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第165话 黑炎剑(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/73548.html" target="_blank" title="妖神记第164话 市镇(下) 2018-03-10">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第164话 市镇(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/73402.html" target="_blank" title="妖神记第164话 市镇(上) 2018-03-07">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第164话 市镇(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/73311.html" target="_blank" title="妖神记第163话 黑龙怒焰(下) 2018-03-03">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第163话 黑龙怒焰(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/73154.html" target="_blank" title="妖神记第163话 黑龙怒焰(上) 2018-02-28">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第163话 黑龙怒焰(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/72926.html" target="_blank" title="妖神记第162话 碾压(下) 2018-02-21">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第162话 碾压(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/72887.html" target="_blank" title="妖神记第162话 碾压(上) 2018-02-19">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第162话 碾压(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/72800.html" target="_blank" title="妖神记第161话 惊人的肉体(下) 2018-02-14">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第161话 惊人的肉体(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/72609.html" target="_blank" title="妖神记第161话 惊人的肉体(上) 2018-02-09">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第161话 惊人的肉体(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/72533.html" target="_blank" title="妖神记第160话 启程(下) 2018-02-07">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第160话 启程(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/72463.html" target="_blank" title="妖神记第160话 启程(上) 2018-02-03">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第160话 启程(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/72295.html" target="_blank" title="妖神记第159话 准备妥当(下) 2018-01-31">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第159话 准备妥当(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/72171.html" target="_blank" title="妖神记第159话 准备妥当(上) 2018-01-27">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第159话 准备妥当(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/71948.html" target="_blank" title="妖神记第158话 矿场见闻(下) 2018-01-24">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第158话 矿场见闻(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/71814.html" target="_blank" title="妖神记第158话 矿场见闻(上) 2018-01-20">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第158话 矿场见闻(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/71639.html" target="_blank" title="妖神记第157话 封印解除(下) 2018-01-17">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第157话 封印解除(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/71544.html" target="_blank" title="妖神记第157话 封印解除(上) 2018-01-13">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第157话 封印解除(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/71403.html" target="_blank" title="妖神记第156话 黄金级(下) 2018-01-10">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第156话 黄金级(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/71311.html" target="_blank" title="妖神记第156话 黄金级(上) 2018-01-06">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第156话 黄金级(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/71165.html" target="_blank" title="妖神记第155话 段剑(下) 2018-01-03">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第155话 段剑(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/71102.html" target="_blank" title="妖神记第155话 段剑(上) 2017-12-30">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第155话 段剑(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70932.html" target="_blank" title="妖神记第154话 宴请(下) 2017-12-27">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第154话 宴请(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70826.html" target="_blank" title="妖神记第154话 宴请(上) 2017-12-23">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第154话 宴请(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70694.html" target="_blank" title="妖神记第153话 银翼家族(下) 2017-12-20">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第153话 银翼家族(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70666.html" target="_blank" title="妖神记第153话 银翼家族(上) 2017-12-16">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第153话 银翼家族(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70481.html" target="_blank" title="妖神记第152话 山脚下的村落(下) 2017-12-13">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第152话 山脚下的村落(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70390.html" target="_blank" title="妖神记第152话 山脚下的村落(上) 2017-12-10">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第152话 山脚下的村落(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70263.html" target="_blank" title="妖神记第151话 十字箴言(下) 2017-12-06">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第151话 十字箴言(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70200.html" target="_blank" title="妖神记第151话 十字箴言(上) 2017-12-02">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第151话 十字箴言(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70067.html" target="_blank" title="妖神记第150话 赤鬼的秘密(下) 2017-11-29">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第150话 赤鬼的秘密(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/70014.html" target="_blank" title="妖神记第150话 赤鬼的秘密(上) 2017-11-25">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第150话 赤鬼的秘密(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69812.html" target="_blank" title="妖神记第149话 继续前进(下) 2017-11-22">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第149话 继续前进(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69751.html" target="_blank" title="妖神记第149话 继续前进(上) 2017-11-18">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第149话 继续前进(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69620.html" target="_blank" title="妖神记第148话 舌头(下) 2017-11-15">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第148话 舌头(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69517.html" target="_blank" title="妖神记第148话 舌头!(上) 2017-11-11">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第148话 舌头!(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69402.html" target="_blank" title="妖神记第147话 好多赤鬼!(下) 2017-11-08">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第147话 好多赤鬼!(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69376.html" target="_blank" title="妖神记第147话 好多赤鬼(上) 2017-11-04">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第147话 好多赤鬼(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69229.html" target="_blank" title="妖神记第146话 万向空间法阵(下) 2017-11-01">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第146话 万向空间法阵(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69150.html" target="_blank" title="妖神记第146话 万向空间法阵(上) 2017-10-28">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第146话 万向空间法阵(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/69010.html" target="_blank" title="妖神记第145话 学院树林……(下) 2017-10-25">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第145话 学院树林……(下)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/68891.html" target="_blank" title="妖神记第145话 学院树林……(上) 2017-10-21">
<span class="list_con_tb">
</span>
<span class="list_con_zj">
第145话 学院树林……(上)
</span>
</a>
</li>
<li>
<a href="https://www.dmzj.com/view/yaoshenji/68892.html" target="_blank" title="妖神记第144话 圣灵学院的第一强者(下) 2017-10-21">
<span class="list_con_tb">
</span>
<span class="lis
from bs4 import BeautifulSoup
from contextlib import closing
from tqdm import tqdm
import time
import os
import requests
import re
def ask_url(url):
head = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47"
# "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63"
}
try:
r = requests.get(url, headers=head, timeout=30)
r.raise_for_status
r.encoding = 'utf-8'
return r.text
except:
return ""
if __name__ == '__main__':
# 获取动漫章节链接和章节名
target_url = "https://www.dmzj.com/info/yaoshenji.html"
html = ask_url(target_url)
soup = BeautifulSoup(html, 'html.parser')
list_con_li = soup.find('ul', class_="list_con_li")
comic_list = list_con_li.find_all('a')
chapter_names = []
chapter_urls = []
for comic in comic_list:
name = comic.text
href = comic.attrs['href']
chapter_names.insert(0, name)
chapter_urls.insert(0, href)
# https://images.dmzj.com/img/chapterpic/3059/14237/14395217739069.jpg
# 创建保存目录
save_dir = "妖神记"
# os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表
# https://www.runoob.com/python/os-listdir.html
if save_dir not in os.listdir('./'):
os.mkdir(save_dir)
# 下载漫画
for i, url in enumerate(tqdm(chapter_urls)):
download_header = {
'Referer': url,
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47'
}
name = chapter_names[i]
# 去掉 '.'
while '.' in name:
name = name.replace('.', '')
chapter_save_dir = os.path.join(save_dir, name)
if name not in os.listdir(save_dir):
os.mkdir(chapter_save_dir)
html = ask_url(url)
soup = BeautifulSoup(html, 'html.parser')
script_info = soup.script
pics = re.findall(r'\d{13,14}', str(script_info)) # !!!
for j, pic in enumerate(pics):
if len(pic) == 13:
pics[j] = pic +'0'
# https://www.runoob.com/python/python-func-sorted.html
pics = sorted(pics, key=lambda x:int(x))
chapterpic_hou = re.findall('\|(\d{5})\|', str(script_info))[0]
chapterpic_qian = re.findall('\|(\d{4})\|', str(script_info))[0]
for idx, pic in enumerate(pics):
if pic[-1] == '0':
url = "https://images.dmzj.com/img/chapterpic/" + chapterpic_qian + '/' + chapterpic_hou + '/' + pic[:-1] + ".jpg"
else:
url = "https://images.dmzj.com/img/chapterpic/" + chapterpic_qian + '/' + chapterpic_hou + '/' + pic + ".jpg"
# print(url)
pic_name = "%03d.jpg" % (idx + 1)
pic_save_path = os.path.join(chapter_save_dir, pic_name)
with closing(requests.get(url, headers=download_header, stream=True)) as response:
chunk_size = 1024
content_size = int(response.headers['content-length'])
if response.status_code == 200:
with open(pic_save_path, 'wb') as file:
for data in response.iter_content(chunk_size=chunk_size):
file.write(data)
else:
print("链接异常")
# https://www.runoob.com/python/att-time-sleep.html
# time.sleep(10)
'''
import time
print(time.ctime()) # Sun Dec 6 13:46:57 2020
time.sleep(10)
print(time.ctime()) # Sun Dec 6 13:47:07 2020
'''
爬取结果截图: