自去年十月份实习后,就没碰过博客了。今天偶然间翻到了一年前为了看一个韩国漫画而写的一个爬虫脚本。也许过一段时间,这个脚本就彻底消失了。为了不让它消失,就存到我的博客上吧。
下面直接上代码,技术用的不是很多,主要的技术已经在这篇博客讲解过了——爬取起点中文网作品信息
'''
为了从https://www.mangareader.net这个漫画网站上
爬取漫画图片,特意做此代码
'''
import os, re
import urllib.request
import time
# 接通网页,获取网页信息
def openUrl(url):
req = urllib.request.Request(url)
req.add_header(
'User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36')
response = urllib.request.urlopen(req)
html = response.read()
return html
# 获取页数
def getPages(url):
html = openUrl(url).decode('utf-8')
find = r'</select> of (\d*?)</div>'
reg = re.compile(find)
pages = re.findall(reg, html)
return pages[0]
# 获取图片地址
def getImgs(url):
html = openUrl(url).decode('utf-8')
find = r'src="(.*?).jpg"'
reg = re.compile(find)
img = re.findall(reg, html)[0]
img += '.jpg'
return img
# 下载图片并保存
def saveImgs(folder, imgAddrs):
num = 0
for img in imgAddrs:
filename = '0'*(3-len(str(num)))+str(num)+'.jpg'
num += 1
print(img)
with open(filename, 'wb') as f:
img = openUrl(img)
f.write(img)
time.sleep(1)
def download(path, start, num):
url = "https://www.mangareader.net/the-breaker/"
for i in range(start, start+num):
# 创建文件夹名
foldername = path + '\第'+str(i+1)+'章'
os.mkdir(foldername)
os.chdir(foldername)
# 每一话的图片地址列表
eachUrl = url + str(i+1)
imgAddrs = []
pages = int(getPages(eachUrl))
# 循环搜寻每一话的图片地址
print('第%d章有%d话'%(i+1, pages))
for p in range(pages):
p += 1
img = getImgs(eachUrl + '/' + str(p))
imgAddrs.append(img)
# 下载图
saveImgs(foldername, imgAddrs)
if __name__ == '__main__':
# 爬取第start+1话 到 end话
start = input('请输入下载的第一话话: ')
num = input('请输入要下载几话: ')
start = int(start) - 1
num = int(num)
# 友情提示:路径需要绝对路径,否则只能创建第一个文件夹,剩余的文件夹可能创建失败
download('D:\\文档堆\\图片\\漫画\\The Breaker\\英文', start, num)
这个代码没有加代理,爬多了你可能就被墙了!