0


Python爬虫——Selenium方法爬取LOL页面

文章目录

Selenium介绍

Selenium 是一个用于自动化Web应用程序测试的工具,但它同样可以被用来进行网页数据的抓取(爬虫)。Selenium 通过模拟用户在浏览器中的操作(如点击、输入、滚动等)来与网页交互,并可以捕获网页的渲染结果,这对于需要JavaScript渲染的网页特别有用。

    1. 安装Selenium 首先,你需要安装Selenium库。可以通过pip安装:pip install selenium
    1. 下载WebDriver Selenium需要WebDriver来与浏览器交互。WebDriver是一个浏览器特定的驱动程序,允许Selenium控制浏览器。你需要根据你的浏览器(如Chrome、Edg等)下载相应的WebDriver。- 如何下载使用: - 直接在网上搜索你所使用的浏览器驱动,下载和你浏览器相同版本的驱动- 比如edg浏览器:在这里插入图片描述在这里插入图片描述- 下载和你的浏览器相同的驱动- 将下载好的驱动放在你的python.exe同一个目录下- 或者使用时可以在代码中指定WebDriver的路径

用Selenium方法爬取LOL每个英雄的图片及名字

  • 使用Selenium方法相比requests方法爬取数据要简便的多
  • 爬取步骤:- 1、指定浏览器的驱动,并通过网址请求页面- 2、获取想要的数据
  • 1、指定浏览器的驱动,并通过网址请求页面- 这里我们使用的是edg驱动(已经将驱动放在了环境变量中)- 给定网址https://101.qq.com/#/hero- Selenium方法虽然不需要requests方法中那些前面的步骤,但还是需要查看索要爬取页面的请求方式(按F12),查看方法相同在这里插入图片描述# 指定驱动driver = webdriver.Edge()# 请求页面 get请求方式driver.get('https://101.qq.com/#/hero')
  • 获取想要的数据- LOL这个页面需要通过一个方法,让其请求页面的时候等待几秒(可自己设定),为了让页面渲染完,不然会爬取失败- 通过XPATH的方法获取所有存放信息的li标签- 获取所有图片的url和英雄姓名在这里插入图片描述# 等待某个元素加载完成 WebDriverWait(driver,10).until( EC.presence_of_element_located((By.XPATH,"//ul[@class='hero-list']")))# 获取所有存放信息的li标签 li_list = driver.find_elements(By.XPATH,"//ul[@class='hero-list']/li")# 遍历每一个li标签,获取图片和英雄姓名for li in li_list: img_url = li.find_element(By.XPATH,"div/div/img").get_attribute("src") hero_name = li.find_element(By.XPATH,"div/p").text print(img_url, hero_name)
  • 完整代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.edge.options import Options

if __name__ =='__main__':# 指定驱动
    driver = webdriver.Edge()# 请求页面
    driver.get('https://101.qq.com/#/hero')# 等待某个元素加载完成
    WebDriverWait(driver,10).until(
        EC.presence_of_element_located((By.XPATH,"//ul[@class='hero-list']")))# 等待某个元素加载完成
    WebDriverWait(driver,10).until(
        EC.presence_of_element_located((By.XPATH,"//ul[@class='hero-list']")))# 获取所有存放信息的li标签
    li_list = driver.find_elements(By.XPATH,"//ul[@class='hero-list']/li")# 遍历每一个li标签,获取图片和英雄姓名for li in li_list:
        img_url = li.find_element(By.XPATH,"div/div/img").get_attribute("src")
        hero_name = li.find_element(By.XPATH,"div/p").text
        print(img_url, hero_name)# 关闭驱动
    driver.close()
  • 爬取结果 - 点击图片链接便可以查看在这里插入图片描述
标签: python 爬虫 selenium

本文转载自: https://blog.csdn.net/weixin_73504499/article/details/141141678
版权归原作者 张小生180 所有, 如有侵权,请联系我们删除。

“Python爬虫——Selenium方法爬取LOL页面”的评论:

还没有评论