zoukankan      html  css  js  c++  java
  • 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 查看爬取到的图片

    一个很简单的小程序。

  • 相关阅读:
    Filesystem Case-Sensitivity Mismatch
    内存分配
    单链表
    PHP校验日期格式是否合法
    Automatically populating $HTTP_RAW_POST_DATA is deprecated
    preg_match(): Compilation failed: character value in x{} or o{} is too large at offset 8
    CGI 和 FastCGI 协议的运行原理
    冒泡排序
    油猴子脚本-过滤百度广告
    查看chrome插件源码
  • 原文地址:https://www.cnblogs.com/xiaozx/p/10717762.html
Copyright © 2011-2022 走看看