美文网首页
Python 爬虫零基础教程(2):下载一组网页上的图片

Python 爬虫零基础教程(2):下载一组网页上的图片

作者: v1coder | 来源:发表于2018-11-26 19:28 被阅读0次

    效果图:

    代码:

    # -*- coding: utf-8 -*-
    # Filename: download_pics.py
    # 下载一组图片
    # 这组图片的 url 末位为 001 至 008
    
    import requests
    
    user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1)'
    headers = {'User-Agent':user_agent}
    
    # http://img.ivsky.com/img/bizhi/pre/201802/04/slender_west_lake-001.jpg
    url_0 = 'http://img.ivsky.com/img/bizhi/pre/201802/04/slender_west_lake-00'
    num_list = range(1,9) # 生成列表[1,2,3,4,5,6,7,8],赋值给变量 num_list
    
    for num in num_list: # for 循环,把列表 num_list 里的每个值分别赋值给 num
        # 当 num 为 1时,str(num)把它转换为'1',然后用加号把 url_0、'1'、'.jpg'拼接起来,结果为'http://img.ivsky.com/img/bizhi/pre/201802/04/slender_west_lake-001.jpg'
        url = url_0 + str(num) + '.jpg'
        # 以下和爬单个图片基本相同
        data = requests.get(url, headers=headers).content
        filename = str(num) + '.jpg'
        f = open(filename, 'wb')
        f.write(data)
        f.close()
        print (url)
    
    print('OK')
    

    知识点:

    注释

    注释就是对代码的解释和说明。注释不会被编译。(通俗说就是:注释是给人看的,不会被执行)

    Python中的注释分单行注释和多行注释

    单行注释以 # 开头

    # 这是一个注释
    

    多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来

    '''
    这是多行注释,用三个单引号
    这是多行注释,用三个单引号 
    这是多行注释,用三个单引号
    '''
    
    """
    这是多行注释,用三个双引号
    这是多行注释,用三个双引号 
    这是多行注释,用三个双引号
    """
    

    校验 User-Agent

    这是我们碰到的第一个反爬虫方式,也是最常见的一个。

    1.在浏览器中找到自己的 User-Agent :
    打开 chrome 的开发者工具;
    选择 network 标签, 刷新网页(在打开调试工具的情况下刷新);
    刷新后在左边找到该网页url,点击,然后选择右边的 headers,然后在 request headers 里就可以找到 User-Agent 了
    把 User-Agent 复制下来

    2.在代码中加入 User-Agent

    user_agent = 'your_User-Agent'
    headers = {'User-Agent':user_agent}
    
    data = requests.get(url, headers=headers).content
    

    其中 your_User-Agent 处填入上面复制的 User-Agent,别忘了引号,这是字符串

    列表

    列表用方括号 [] 标识,元素用逗号隔开。列表的每一个元素对应着一个索引,索引代表元素的位置,第一个元素的索引是 0 ,第二个元素的索引是 1 ,以此类推。

    列表的元素可以是数字、字符串、列表、元组、字典,而且一个列表的不同元素可以是不同数据类型。

    列表是有序的对象集合,可以添加和删除其中的元素。列表可以切片。

    # 创建列表
    list1 = ['v1coder', 'spider', 2018, 11]
    list2 = [1, 2, 3, 4, 5 ]
    list3 = ["a", "b", "c", "d"]
    list4 = []  # 创建一个空列表
    

    range() 函数

    range()函数可按参数生成连续的有序整数列表。

    语法:

    range(start, stop, step)
    

    start: 计数从 start 开始。默认是从 0 开始。
    end: 计数到 end 结束,但不包括 end。
    step:步长,默认为1。

    >>> range(10)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> range(1,10)
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> range(1,10,2)
    [1, 3, 5, 7, 9]
    

    for循环

    # 语法:
    for item in sequence:
        expressions
    # sequence 为可迭代的对象,item 为序列中的每个对象。
    # for 循环就是依次把 sequence 中的每个元素赋值给变量 item,然后执行缩进块的语句。
    

    示例:

    list1 = [1,2,3,4]
    for x in list1:
        print x
    # 解释:
    # 把列表中的第一个元素 1 赋值给变量 x,然后运行缩进块的语句 print x
    # 再把列表中的第二个元素 2 赋值给 x,然后运行 print x
    
    # 输出结果
    1
    2
    3
    4
    

    字符串“加法”

    可以用加号 + 把两个字符串拼接起来

    示例:

    str_1 = 'v1'
    str_2 = 'coder'
    str_3 = str_1 + str_2
    print str_3
    
    # 输出结果:
    v1coder
    

    str()函数

    把对象转换成字符串。

    >>> str(4)
    '4'
    

    教程目录:
    0.《简介及准备》
    1.《爬单个图片》
    2.《下载一组网页上的图片》
    3.《输出一个网页上的文字》
    4.《获取电影天堂最新电影名称》
    5.《糗事百科爬虫》

    20181126

    相关文章

      网友评论

          本文标题:Python 爬虫零基础教程(2):下载一组网页上的图片

          本文链接:https://www.haomeiwen.com/subject/vrkiqqtx.html