python爬虫系列Selenium定向爬取虎扑篮球图片详解

Python爬虫系列Selenium定向爬取虎扑篮球图片详解

准备工作

在进行定向爬取虎扑篮球图片之前,需要安装Selenium和Chrome浏览器。

  1. 安装Selenium:可以在命令行使用以下命令进行安装:
pip install selenium
  1. 下载Chrome浏览器:需要下载浏览器对应版本的ChromeDriver,可以在官网上下载:

ChromeDriver下载地址

下载完对应版本的ChromeDriver后,将其解压并保存至本地。

程序设计

下面结合代码和详细注释讲解Selenium定向爬取虎扑篮球图片的完整攻略。

import os
import time
from selenium import webdriver

# 保存图片文件的本地路径
IMAGE_SAVE_PATH = 'huPuImages'

# 定义生成Chrome浏览器driver的函数
def get_driver():
    # 获取ChromeDriver路径
    chrome_driver_path = os.path.dirname(os.path.abspath(__file__)) + '/chromedriver'
    # 创建Chrome浏览器driver
    options = webdriver.ChromeOptions()
    # 设置Chrome浏览器不显示界面
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')
    options.add_argument('lang=zh_CN.UTF-8')
    driver = webdriver.Chrome(executable_path=chrome_driver_path, chrome_options=options)
    driver.maximize_window()
    # 返回生成的Chrome浏览器driver
    return driver

# 定义获取页面图片url列表的函数
def get_image_urls(url):
    # 创建Chrome浏览器driver
    driver = get_driver()
    # 打开页面
    driver.get(url)
    # 使用XPath获取页面图片标签列表
    img_list = driver.find_elements_by_xpath('//*[@id="J_box_container"]/div[1]/ul/li//img')
    # 遍历图片标签列表,获取图片url并添加至列表中
    image_urls = []
    for img in img_list:
        # 获取图片url
        url = img.get_attribute('src')
        # 添加至列表中
        image_urls.append(url)
    # 关闭浏览器窗口
    driver.quit()
    # 返回图片url列表
    return image_urls

# 定义下载图片的函数
def download_images(url_list):
    # 遍历图片url列表
    for url in url_list:
        # 获取图片名称
        image_name = url.split('/')[-1]
        # 如果保存图片的文件夹不存在,则创建
        if not os.path.exists(IMAGE_SAVE_PATH):
            os.makedirs(IMAGE_SAVE_PATH)
        # 下载图片
        os.system('curl -o "{0}/{1}" {2}'.format(IMAGE_SAVE_PATH, image_name, url))
        print('下载了一张图片:', url)

# 主函数
def main():
    # 要爬取的页面url
    url = 'https://voice.hupu.com/nba/2495549.html'
    # 获取页面图片url列表
    url_list = get_image_urls(url)
    # 下载图片
    download_images(url_list)

if __name__ == '__main__':
    main()

程序主要分为三个函数:生成Chrome浏览器driver的函数、获取页面图片url列表的函数和下载图片的函数。

其中,获取页面图片url列表的函数使用了Selenium的XPath定位功能,获取页面图片标签列表,然后遍历图片标签列表,获取图片url并添加至列表中。

下载图片的函数使用curl命令进行下载,如果保存图片的文件夹不存在,则创建文件夹。

示例说明

示例一

要爬取的页面为:https://voice.hupu.com/nba/2495549.html

通过调用get_image_urls函数获取页面图片url列表,然后调用download_images函数进行下载,执行完程序后,保存图片的文件夹中将保存从该页面中获取到的所有图片。

示例二

要爬取的页面为:https://voice.hupu.com/nba/2462904.html

同样通过调用get_image_urls函数获取页面图片url列表,然后调用download_images函数进行下载,执行完程序后,保存图片的文件夹中将保存从该页面中获取到的所有图片。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫系列Selenium定向爬取虎扑篮球图片详解 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 【Python爬虫学习(1)】BeautifulSoup库的使用

    一、BeautifulSoup库简介 BeautifulSoup是一个灵活方便的网页解析库,处理搞笑,支持多种解析器。利用它可以不用编写正则表达式就可以方便的实现网页信息的抓取。 BeautifulSoup是爬虫必学技能,其最主要的功能是从网页抓取数据。BeautifulSoup自动的将输入文档转换为Unicode编码,输出文档转换为utf-8编码。Beau…

    2023年4月11日
    00
  • Python正则表达式的应用详解

    Python正则表达式的应用详解 正则表达式是一种强大的文本处理工具,可以用于各种文本处理任务,如数据清洗、文本分析、提取等。在Python中,我们可以使用re模块来操作正则表达。本攻略详细讲解Python正则表达式的基本语法、常用函数和应用技巧,帮助读者快速掌握则表达式的用法。 正则表达式的基本语法 正则表达式是由普通字符和元字符组成的字符串,用于匹配文本…

    python 2023年5月14日
    00
  • Python字典深浅拷贝与循环方式方法详解

    Python字典深浅拷贝与循环方式方法详解 本文主要介绍Python字典的深浅拷贝与循环方式方法的相关知识点。 什么是字典 字典是Python语言中一种重要的类型,它是由一些没有特定顺序的键/值对组成的集合,通常用花括号{}来定义。 # 定义一个字典 my_dict = {"name": "Lucy", "a…

    python 2023年5月13日
    00
  • python regex库实例用法总结

    Python regex库实例用法总结 什么是正则表达式? 正则表达式(Regular Expression) 是用来匹配字符串中字符组合的一种方式。正则表达式是对字符串操作的一种逻辑公式,就是处理字符串的一种方式。正则表达式也称作正规表示法、正规表示式、正规表达式、规则表达式、常规表示法(英文Regular Expression)。 在Python中,可以…

    python 2023年6月3日
    00
  • python多线程+代理池爬取天天基金网、股票数据过程解析

    这是一个比较复杂的爬虫案例,需要使用Python多线程和代理池技术,下面我将详细讲解过程: 需求分析 天天基金网和股票数据是许多投资人和分析师经常访问的网站,我们需要从这些网站获取相关数据,以便进行更好的投资和分析工作。我们可以使用Python多线程和代理池技术来提高爬取效率和稳定性。 环境搭建 在开始项目前,需要搭建Python环境、安装相关库和配置代理池…

    python 2023年6月6日
    00
  • 教你用python编写脚本实现自动签到

    教你用Python编写脚本实现自动签到 简介 本文将详细讲解如何使用Python编写脚本实现自动签到。在本文中,我们将使用Selenium和ChromeDriver两个库。Selenium是一个自动化测试工具,可以用于模拟用户在Web上的操作,如点击按钮等。而ChromeDriver则是Selenium用于控制Chrome浏览器的驱动程序。 环境配置 首先,…

    python 2023年5月19日
    00
  • 基于python的MD5脚本开发思路

    下面我将详细讲解基于Python的MD5脚本开发思路的完整攻略。 首先,我们需要明确一下MD5是什么。MD5是一种常用的哈希函数,用于给任意长度的信息生成一个128位的哈希值(或称为摘要),通常用于验证数据的完整性和对称加密。 接下来,我们便可以开始编写基于Python的MD5脚本了。下面是具体的步骤: 1、引入Python的hashlib模块,用于实现哈希…

    python 2023年5月19日
    00
  • Python实现的knn算法示例

    Python实现的knn算法示例 K最近邻(KNN)是一种基于实例的学习方法,它将新数据点分配给与其最相似的K个训练数据点之一。在本攻略中,我们将介绍如何使用Python实现KNN算法,并提供两个示例来说明如何使用KNN算法进行分类和回归。 步骤1:了解KNN算法 在KNN算法中,我们需要考虑以下因素: K值:K值是指用于分类或回归的最近邻居的数量。通常,我…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部