page = pq(url="http://www.hanhande.net/manga/94/", encoding='utf-8')
lias = page("#chapter-list-4").find('li').find('a').items()
for a in lias:
print(a.attr['href'])
print(a.text())
初步效果有了,我们再继续看看详细的动漫页面
我们可以看到页面结构、图片路径以及图片页数,当我们点击下一页的时候,URL和图片都有所变化
好,这里,我们就可以来获取我们的图片了
from pyquery import PyQuery as pq
from selenium import webdriverimport requestsbrowser = webdriver.Chrome()browser.get('http://www.hanhande.net/manga/94/345731.html')
page = pq(browser.page_source)
images = page("#images")
img_url = images.find('img').attr.src
page_total = images.find('p').text()
print(img_url)
print(page_total.split('/')[1].replace(')', ''))
response = requests.get(img_url)with open('1.jpg', 'wb') as f:
f.write(response.content)
执行这段脚本后,会打印出图片和页数以及在本地保存一张图片
现在我们再来结合之前的获取到的地址,来全量下载吧,来看看最终代码
from pyquery import PyQuery as pq
from selenium import webdriverimport requestsimport osbrowser = webdriver.Chrome()def get_pic(source_url, file_path, index): url = source_url if index > 1:
url = url+"#p="+str(index)
browser.get(url) # 浏览器加载的地址 browser.refresh() # 刷新浏览器 page = pq(browser.page_source) images = page("#images")
img_url = images.find('img').attr.src
page_total = images.find('p').text()
page_total = page_total.split('/')[1].replace(')', '') # 获取漫画页数
response = requests.get(img_url) with open(file_path+str(index)+'.jpg', 'wb') as f: # 保存图片
f.write(response.content)
if index < int(page_total):
get_pic(source_url, file_path, index+1) # 递归获取网页中的图片
def get_page(url): page = pq(url=url, encoding='utf-8')
lias = page("#chapter-list-4").find('li').find('a').items()
for a in lias:
folder='F:/hzw/'+a.text() #
isExists=os.path.exists(folder) # 检查文件夹是否存在
if not isExists: # 如果不存在则新建文件夹
os.makedirs(folder)
get_pic('http://www.hanhande.net'+a.attr['href'], folder+"/", 1)
get_page('http://www.hanhande.net/manga/94/')
现在执行脚本就可以看到程序正在逐一下载图片哟
是不是感觉有点意思呢?
我只是记录我的学习过程,由于书读的少,可能很多地方表述或者是理解得不对,请轻喷并指正。