python爬虫(三、四)—获取相应内容+保存数据

python爬虫(三、四)———获取相应内容+保存数据

前情回顾:
#发起请求
import requests
import re
headers = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36'
}
reponses = requests.get('https://www.doutula.com/article/detail/1472031',headers = headers)
html = reponses.text
#解析网站
urls = re.findall('<img referrerpolicy="no-referrer" data-cfsrc="(.*?)" alt=".*?" οnerrοr=".*?" style=".*?">',html)
print(urls)
本期内容:

获取相应内容+保存文件

上面我们已经将文件的 url 获取到了,接下来就是很简单的了,将其内容转化为二进制形式再加以保存就好
首先我们需要创建一个文件夹来放这些图片,这时,我们不需要从文件夹里新建,这样是不高级的,我们这样:

import os
dir_name = re.findall('<h1><a href=".*?">(.*?)</a></h1>',html)[-1]
print(dir_name)
if not os.path.exists(dir_name):
    os.mkdir(dir_name)

我们这里用到了 os模块(os模块包含普遍的操作系统功能,用来建文件是非常简单的),而 re.findall 里的内容是在网页源代码上找到的在这里插入图片描述
这样我们就可以用这个网页页面的标题来做为文件名
然后就到了保存文件

for url in urls:
    file_name = url.split('/')[-1]
    response = requests.get(url, headers=headers)
    with open(dir_name + '/' + file_name , 'wb') as f:
        f.write(response.content)

在这里,我们的文件名就用了本身的地址(其实可以用表情包名字的,自己探索吧),再一次的获取网站信息,用到了requests.get(),open()函数,由于是用二进制写入,所以用到了‘wb’,这样的话,这些文件就保存了下来在这里插入图片描述
以下为整个过程的代码:

import requests
import re
import os

#请求网站
headers = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36'
}
reponses = requests.get('https://www.doutula.com/article/detail/1472031',headers = headers)
html = reponses.text
#print(html)
#print(reponses.status_code)

#解析网站
urls = re.findall('<img referrerpolicy="no-referrer" data-cfsrc="(.*?)" alt=".*?" οnerrοr=".*?" style=".*?">',html)
#print(urls)
dir_name = re.findall('<h1><a href=".*?">(.*?)</a></h1>',html)[-1]
#print(dir_name)
if not os.path.exists(dir_name):
    os.mkdir(dir_name)

#保存图片
for url in urls:
    file_name = url.split('/')[-1]
    response = requests.get(url, headers=headers)
    with open(dir_name + '/' + file_name , 'wb') as f:
        f.write(response.content)

最基础,最简单的爬虫爬图片的小案例结束了,只需要20行左右,就可以将一个网站上的图片保存到你的文件夹中,但是总会有人问,我Ctrl+c就好了啊,事实上,确实如此(卑微),但是,不觉得这样有逼格一点吗?

小编也是个小白,在学习过程中,如果你们有什么好的学习网站或者项目推荐给小编呗。

发布了32 篇原创文章 · 获赞 14 · 访问量 1205

猜你喜欢

转载自blog.csdn.net/qq_45770364/article/details/104777337