因为刚学的python,有些地方的代码还需要改进。后续有时间会继续改进代码。
此文章是基于Python 3.6.0a4 进行的开发,目的是爬取网站的图片,打包成一个文件夹
本来的目的是想基于主页进行遍历所有的图集,进去之后再遍历所有的图片进行下载,结果发现url地址根本就不需要我遍历,直接用数字进行累加就可以,晕倒。
所以改成了一个很简单的代码。
import urllib.request
import re
import os
def url_open(url):
req = urllib.request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36')
response = urllib.request.urlopen(req)
html = response.read()
return html
def get_page(html):
html = html.decode('utf-8')
return html
def save_imgs(folder ,filename):
name = filename.split('/')[-1]
with open(name ,'wb') as f:
img = url_open(filename)
f.write(img)
def download_pic(folder = 'picss2',pages = 1000):
url = 'http://luluhei.tv/album/'
os.mkdir(folder)
os.chdir(folder)
'''
ip_address = 'http://luluhei.tv'
re_main = re.compile(r'<a href="/album/.*>')
html_main = url_open(url)
find_main = re.findall(re_main,html_main)
urllib.parse.quote()
print(filename)
'''
for num in range(3510,3550):
html_findimg = get_page(url_open(url + str(num)))
re_findimg = re.compile(r'<img src=.*jpg')
find_findimg = re.findall(re_findimg,html_findimg)
for img_src in find_findimg:
filename = img_src[10:]
save_imgs(folder,filename)
if __name__ == '__main__':
download_pic()