程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

python面试题(22)

字典(0)

标签  

python面试(18)

字典(0)

日期归档  

2023-05(3)

实战项目 — 爬取 校花网图片

发布于2019-08-23 12:10     阅读(908)     评论(0)     点赞(14)     收藏(3)


重点: 

1.  指定路径创建文件夹,判断是否存在

2. 保存图片文件

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 获得校花网的地址,图片的链接
 
import re
import requests
import time
import os
 
start = time.time()
num = 0                        # 为了记录爬的照片的次数
 
# 设置路径
path = 'D:\校花网'
# 判断目录下的文件夹是否已经创建,如果不存在
if not os.path.exists(path):
    # 则创建路径文件夹
    os.makedirs(path)
    print("完成创建文件夹!")
else:
    # 如果存在,则不需要创建
    pass
    print('路径已经存在,不需要创建!')
 
for url_name in range(5):
    response = requests.get(f'http://www.xiaohuar.com/list-1-{url_name}.html')
    # data就是我们要的校花F12里的东西啦,并用字符串格式保存
    data = response.text
    print("正在解析处理第{}页 ".format(url_name))
    # print(data)
    # 其中(.*?)表示我们所要获得的内容
    one_list = re.findall('" src="(.*?)" /></a>', data)
    # type str 这是为了让pycharm 更快的知道V是字符串格式方便导入内置方法
    for v in range(len(one_list)):
        # 这是为了让其中有些保护的图片变成正确的超链接格式
        if one_list[v].startswith('/d'):
            one_list[v] = f'http://www.xiaohuar.com/{one_list[v]}'
 
    for x in one_list:
        # 为了自动生成文件名,由于 one_list 网址有"/" 分割,最后的数据太长,所以名字也很长
        # x 是链接 随机一条如: http://www.xiaohuar.com//d/file/20190818/a73a16dfeaf75bd16d2e355642e1e16e.jpg
        name = x.split('/')[-1]
        # 再次分析链接,获得图片的信息
        dd = requests.get(x)
        # 图片信息装换成机械语言
        d_data = dd.content
 
        with open(f'D:\校花网\{name}','wb') as fw:
            fw.write(d_data)
            # 强行把缓冲区中的内容放到磁盘中
            fw.flush()
            num += 1
            print(f'已经爬取{num}张')
        # 防止段时间请求过多
        time.sleep(1)
 
print("全部完成,耗时%d s"%(start - time.time()))

  



所属网站分类: 技术文章 > 博客

作者:外星人入侵

链接:https://www.pythonheidong.com/blog/article/54570/2b28792e59b0179dcd4c/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

14 0
收藏该文
已收藏

评论内容:(最多支持255个字符)