如何使用Python Selenium定位元素

如何使用Python Selenium定位元素

由于技术的频繁变化,我们经常需要重新设计和重构网页或网站的内容。Selenium与Python的结合非常有用,可以从网页中提取所需的内容。Selenium是一个免费的开源自动化工具,用于评估跨多个平台的Web应用程序。Selenium测试脚本可以使用多种计算机语言编写,例如JavaC#,Python,NodeJS,PHP,Perl等。本Python Selenium文章介绍了使用两个不同的示例定位Selenium中网页元素的方法。在这两个示例中,我们使用新闻网站来提取内容。

要提取的元素定位-

打开要提取内容的网站。现在按鼠标右键并打开检查窗口。高亮显示网页中的元素或部分,并从检查窗口中查看其HTML设计规范。使用这些规范来定位元素。

如何使用Python Selenium定位元素

示例1:使用Selenium和Python定位具有特定类名的div元素

步骤

  • 步骤 1 - 首先下载与Chrome版本相同的Chrome驱动程序。现在将驱动程序保存在与Python文件存储在相同的文件夹中。

  • 步骤 2 - 使用START_URL = “https://www.indiatoday.in/science”. Import BeautifulSoup进行解析。使用”class”为”story__grid”来定位div元素。

  • 步骤 3 - 指定网站URL,并启动驱动程序获取URL。

  • 步骤 4 - 使用BeautifulSoup解析获取的页面。

  • 步骤 5 - 搜索所需类别的div标签。

  • 步骤 6 - 提取内容。通过将提取的内容包含在HTML标签中,将其打印并转换为HTML格式。

  • 步骤 7 - 写入输出HTML文件。运行程序。打开输出的HTML文件并检查结果。

示例

from selenium import webdriver
from bs4 import BeautifulSoup
import time

START_URL= "https://www.indiatoday.in/science"

driver = webdriver.Chrome("./chromedriver")
driver.get(START_URL)
time.sleep(10)
def scrape():
   temp_l=[]
   soup = BeautifulSoup(driver.page_source, "html.parser")
   for div_tag in soup.find_all("div", attrs={"class", "story__grid"}):   
      temp_l.append(str(div_tag))
   print(temp_l)   

   enclosing_start= "<html><head><link rel='stylesheet' " +  "href='styles.css'></head> <body>" 
   enclosing_end= "</body></html>"

   with open('restructuredarticle.html', 'w+',  encoding='utf-16') as f:
      f.write(enclosing_start)
      f.write('\n' + '<p> EXTRACTED CONTENT START </p>'+'\n')
      for items in temp_l: 
         f.write('%s' %items)
      f.write('\n' + enclosing_end)    

   print("File written successfully")
   f.close()
scrape()

输出

在命令窗口中运行Python文件 –

打开cmd窗口。首先,我们将在cmd窗口中检查输出。然后在浏览器中打开保存的html文件,以查看提取的内容。

如何使用Python Selenium定位元素

如何使用Python Selenium定位元素

示例2:使用Python的Selenium定位具有特定类名的h4元素

  • 步骤1 - 首先下载与Chrome相同版本的chromedriver。现在将该驱动程序保存在与Python文件存储在同一文件夹中的位置。

  • 步骤2 - 使用START_URL= “ https://jamiatimes.in/”.导入 用于解析的BeautifulSoup。使用”class”作为”entry-title title”来定位h4元素。

  • 步骤3 - 指定网站URL,并启动驱动程序来获取URL。

  • 步骤4 - 使用BeautifulSoup解析获取的页面。

  • 步骤5 - 使用所需类进行h4标签的搜索。

  • 步骤6 - 提取内容。将其打印出来并将其转换为html形式,将提取的内容放在HTML标签中。

  • 步骤7 - 编写输出的HTML文件。运行程序。打开输出的HTML文件并检查结果。

示例

from selenium import webdriver
from bs4 import BeautifulSoup
import time

START_URL= "https://jamiatimes.in/"         
driver = webdriver.Chrome("./chromedriver")
driver.get(START_URL)
time.sleep(10)
def scrape():
   temp_l=[]
   soup = BeautifulSoup(driver.page_source, "html.parser")
   for h4_tag in soup.find_all("h4", attrs={"class", "entry-title title"}):        
      temp_l.append(str(h4_tag))
   enclosing_start= "<html><head><link rel='stylesheet' " +  "href='styles.css'></head> <body>" 
   enclosing_end= "</body></html>"
   with open('restructuredarticle2.html', 'w+',  encoding='utf-16') as f:
      f.write(enclosing_start)
      f.write('\n' + '<p> EXTRACTED CONTENT START </p>'+'\n')
      for items in temp_l: 
         f.write('%s' %items)
      f.write('\n' + enclosing_end)                 
   print("File written successfully")
   f.close()
   print(temp_l)
scrape()

输出

在命令窗口中运行python文件−

打开cmd窗口。首先在cmd窗口中检查输出。然后打开保存的html文件在浏览器中查看提取的内容。

如何使用Python Selenium定位元素

如何使用Python Selenium定位元素

在这篇Python Selenium文章中,给出了两个不同的示例,展示了定位元素以进行爬虫的方法。在第一个示例中,使用Selenium定位div标签,然后从一个新闻网站上爬取指定的元素。在第二个示例中,定位h4标签,并从另一个新闻网站上提取所需的标题。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程