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

    一个很简单的小程序。

  • 相关阅读:
    autoreleasepool
    #ifndef/#define/#endif
    类工厂创建单例
    第一篇献给你:Block的回调
    博客纪念日
    [系列教程] Discuz模板的制作方法
    使用Discuz!后台备份和恢复Discuz!站点数据库的方法教程
    discuz x2.5 还原教程
    80后公务员辞职自述:7年收入没涨 能力是听话
    公务员队伍开始动荡了吗?
  • 原文地址:https://www.cnblogs.com/xiaozx/p/10717762.html
Copyright © 2011-2022 走看看