Python 爬虫之实现爬取图片并下载到自己创建的文件夹内

还是先给出代码 再给出要点解析 最后加上一点问题分析
下面 开始对 本次 米切尔 的 讲解

import re
import os
import requests

url = "https://www.你想要的爬取的网站.com"
headers = {
    
    
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
web = requests.get(url=url, headers=headers)
halunu = re.findall('img width="701" height="1024" src="(.*?).x-oss', web.text)
print(len(halunu))# 图片地址的个数
path='E:\\※代理桌面\\75'
os.mkdir(path)
for i in range(len(halunu)):
    picture = requests.get(halunu[i])
    with open(path+'\{}.jpg'.format(i + 1), 'wb') as f:
        f.write(picture.content)
        print("第{}张".format(i + 1))
print("^灬^bingo^灬^")

要点解析

需要的模块
import re #正则表达式 我们在选择图片的地址是 需要用到
import os #操作文件所需要的包
import requests #取得 爬取的数据
第一步
url = "https://www.你想要的爬取的网站.com" #我是不会暴露我的 个人爱好  的
headers = {
    
    
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}# 反爬 的 最简单的基础  模仿浏览器打开网页 而不是直接用Python解析器 打开
#以上两点 都可以 在 (鼠标右键-检查-network-name 里找到 ->谷歌浏览器 我这次用的是360)
web = requests.get(url=url, headers=headers) #获取网页的 所有内容
获取图片的地址

分析完自己想要的 内容后 用正则表达式获取(一定要认真分析 网页源代码 正则 比 bf4 和 lxml要简单的多 正常情况都可以 获取的)

halunu = re.findall('img width="701" height="1024" src="(.*?).x-oss', web.text)
#获取 自己想要内容的链接
创建文件夹
print(len(halunu))
path='E:\\※代理桌面\\75'#想要创建文件夹的地址  我用的是绝对地址
os.mkdir(path)#用 os库来完成创建
将图片下载到本地
for i in range(len(halunu)):# 一张一张 地 来
    picture = requests.get(halunu[i])#永get 请求获取 链接内的所有内容
    with open(path+'\{}.jpg'.format(i + 1), 'wb') as f:
        f.write(picture.content)#设置图片 地址 和 名称 以及 后缀名 并将链接内的 内容 存入图片
        # 每打开一张 图片 一定要关闭 f.close() 我为了省事 用了 with  as   语句(会自动关闭)

可能出现的问题

re.findall()

findall请求 的第二个参数 是文本文件 所有记得加 .text
否则 会 报错

halunu = re.findall('img width="701" height="1024" src="(.*?).x-oss', web.text)
打开文件的模式

模式选择 切记 要用二进制的 格式来读取和写入 就是’wb’后面的这个 ‘b’ 图片就是一个一个 的像素点嘛
不然也会报错

with open(path+'\{}.jpg'.format(i + 1), 'wb') as f:

最后 还是
may you have a good day

猜你喜欢

转载自blog.csdn.net/M1170780140/article/details/107399550