使用到的工具
request库,用来请求网站获取返回的html页面代码;BeautifulSoup解析器,用来解析html页面代码获取对应的图片地址完成下载,urlretrieve下载工具用来下载图片。
完整代码
import time
import urllib
import requests
from bs4 import BeautifulSoup
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.12022 SLBChan/128'
}
img_url = 'https://pic.netbian.com{}'
# 爬取当页下的所有图片地址
def get_allimg_url(page_url):
response = requests.get(page_url, headers=headers)
# 处理当中文乱码的情况
beautifulsoup = BeautifulSoup(response.text.encode('iso-8859-1').decode('gbk'), 'lxml')
img_tup = beautifulsoup.find_all('img')
print(img_tup)
for img in img_tup[0:len(img_tup) - 3]:
img_src = img.get('src')
# 下载图片到本地
urllib.request.urlretrieve(img_url.format(img_src), '../images/{}.png'.format(img.next.text))
print('下载{}图片完成'.format(img.next.text))
# 让代码停止运行1秒,用于防止被封ip
time.sleep(1)
# 爬取指定页数下的url地址
def get_url_pages(pages_num):
pages_tup = []
for i in range(pages_num):
pages_tup.append(img_url.format('/4kmeinv/index_{}.html').format(i + 1))
return pages_tup
# 主函数运行
if __name__ == '__main__':
pages_tup = get_url_pages(5)
for pages_url in pages_tup:
get_allimg_url(pages_url)