python 抓取糗事百科糗图

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 查看爬取到的图片

一个很简单的小程序。

原文地址:https://www.cnblogs.com/xiaozx/p/10717762.html