python3 爬虫照片

安简瑜 3周前 15浏览 0评论

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爬虫来获取照片了。同样的方法也可以应用于其他类型的数据,比如文章、视频等。只需要修改一下代码,就可以满足不同的需求。