Python3爬虫是一个非常强大的工具,可以让你轻松地获取目标网站上的大量数据。其中,爬取照片是一个很有趣的应用,本文就来介绍如何使用Python3爬虫来获取照片。
首先,我们需要安装Python3和一些必要的库。以下是需要安装的库:
import requests # 用于发送HTTP请求
from bs4 import BeautifulSoup # 用于解析HTML页面
import os # 用于创建目录和写入文件
import re # 用于正则表达式
接下来,我们需要指定要爬取的网站的URL,以及我们要保存照片的本地目录。
url = 'https://example.com/photos'
path = './photos'
接着,我们需要发送请求,获取目标网站的HTML页面。然后,我们将HTML页面交给BeautifulSoup库来解析,找到所有照片的URL。
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
img_tags = soup.find_all('img')
urls = []
for img in img_tags:
urls.append(img['src'])
接下来,我们需要下载每一个照片,然后将它保存到本地目录。为了避免重名的问题,我们可以对每一个照片的URL进行处理,只取其文件名部分。
if not os.path.exists(path):
os.makedirs(path)
for i, url in enumerate(urls):
r = requests.get(url, stream=True)
image_name = re.search(r'([\w_-]+[.](jpg|png|gif))$', url)
if image_name:
filename = image_name.group(0)
with open(os.path.join(path, filename), 'wb') as f:
for chunk in r.iter_content(1024):
f.write(chunk)
这样,我们就成功地使用Python3爬虫来获取照片了。同样的方法也可以应用于其他类型的数据,比如文章、视频等。只需要修改一下代码,就可以满足不同的需求。
上一篇 python3 清空字典
下一篇 html新闻列表怎么设置字体