实现简单的爬取网站图片

from urllib.request import urlopen
from urllib.error import URLError
import re


def get_page(url):
    """
    获取页面内容

    :param url:
    :return:
    """
    try:
        urlObj = urlopen(url) #实现对目标网站的访问
    except URLError as e:
        print("爬取%s失败...." % (url))
    else:
        # 默认是bytes类型, 需要的是字符串, 二进制文件不能decode
        content = urlObj.read() #读取网站内容
        return content


def parser_content(content):
    """
    解析页面内容, 获取所有的图片链接
     :param content:
    :return:
    """
    content = content.decode('utf-8').replace('\n', ' ')
    pattern = re.compile(r'<img class="BDE_Image".*? src="(https://.*?\.jpg)".*?">')
    imgList = re.findall(pattern, content)
    return imgList


def get_page_img(page):
    url = "https://tieba.baidu.com/p/5752826839?pn=%s" %(page)
    content = get_page(url)
    print(content)

    # with open('tieba.html', 'w') as f:
    #     f.write(content)
    if content:
        imgList = parser_content(content)
        for imgUrl in imgList:
            # 依次遍历图片的每一个链接, 获取图片的内容;
            imgContent = get_page(imgUrl)
            # https://imgsa.baidu.com/forum/w%3D580/sign=a05cc58f2ca446237ecaa56aa8237246/94cd6c224f4a20a48b5d83329c529822700ed0e4.jpg
            imgName = imgUrl.split('/')[-1]
            with open('img/%s' %(imgName), 'wb') as f:
                f.write(imgContent)
                print("下载图片%s成功...." %(imgName))
if __name__ == '__main__':
    for page in range(1, 11):
        print("正在爬取第%s页的图片...." %(page))
        get_page_img(page)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python来爬取网站图片,你可以使用第三方库如requests和BeautifulSoup来获取网页内容,并使用Python的内置模块如urllib和os来下载和保存图片。 下面是一个简单的示例代码,演示如何使用Python来爬取网站图片: ```python import requests from bs4 import BeautifulSoup import urllib.request import os # 定义保存图片的目录 save_dir = './images' # 创建保存图片的目录 if not os.path.exists(save_dir): os.makedirs(save_dir) # 发起网络请求获取网页内容 url = 'http://example.com' # 替换为你要爬取网站链接 response = requests.get(url) html_content = response.content # 使用BeautifulSoup解析网页内容 soup = BeautifulSoup(html_content, 'html.parser') # 找到所有的图片标签 img_tags = soup.find_all('img') # 遍历图片标签,下载并保存图片 for img_tag in img_tags: # 获取图片链接 img_url = img_tag['src'] # 拼接完整的图片链接 if not img_url.startswith('http'): img_url = url + img_url try: # 发起网络请求下载图片 response = urllib.request.urlopen(img_url) # 生成图片保存路径和文件名 save_path = os.path.join(save_dir, os.path.basename(img_url)) # 保存图片到本地 with open(save_path, 'wb') as f: f.write(response.read()) print(f'Successfully downloaded {img_url}') except Exception as e: print(f'Failed to download {img_url}: {str(e)}') ``` 请注意,这只是一个简单的示例代码,你可能需要根据具体的网站结构和需求进行适当的修改。另外,爬取网站图片可能涉及到一些法律和道德问题,请确保你获得了合法授权或遵守相关规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值