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


效果图:

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


代码:

# -*- 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 复制下来

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

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):下载一组网页上的图片)