1 首先看下要抓取的页面
这是糗事百科里面的糗图页面,每一页里面有很多的图片,我们要做的就是把这些图片抓取下来。
2 分析网页源代码
发现源代码里面的每张图是这样储存的,所以决定使用正则匹配出图片的url,然后下载下来。
3 编写程序
import requests import re import os def main(): url = 'https://www.qiushibaike.com/pic/page/{}/' ua_headers = { "User-Agent":'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)'} # 指定其实页码和结束页码 page_start = int(input('请输入开始页面:')) page_end = int(input('请输入结束页面:')) # 找文件夹,如果没有则创建一个 if not os.path.exists('Images'): os.mkdir('Images') # 循环下载 for page in range(page_start, page_end+1): print('正在下载第%d页图片...'%page) new_url = url.format(page) responses = requests.get(url=new_url, headers=ua_headers) if responses.status_code == 200: res = responses.text else: print('页面没有响应') pattern = re.compile('''<div class="thumb">.*?<img src="(.*?)".*?>.*?</div>''', re.S) items = re.findall(pattern, res)for item in items: url_image = 'https:' + item name_image = item.split('/')[-1] image_path = 'Images/' + name_image image_data = requests.get(url=url_image, headers=ua_headers).content with open(image_path, 'wb') as f: f.write(image_data) if __name__ == '__main__': main()
3 查看爬取到的图片
一个很简单的小程序。