I have to collect data from this link: https://datacentersupport.lenovo.com/gb/en/products/storage/fibre-channel-switches/b6505-fc-san-switch/3873/parts/display/compatible
However I am having difficulty accessing the data under substitutes(note: not all them have substitutes). Those with substitutes look like this:
An example is on page 2 of the link
Kindly help me finish the code I have to collect the part numbers of the substitutes.
Here's my code:
from selenium import webdriver
from time import sleep
import csv
# initializing webdriver
driver = webdriver.Chrome(executable_path="~~chromedriver.exe")
url = "https://datacentersupport.lenovo.com/gb/en/products/storage/fibre-channel-switches/b6505-fc-san-switch/3873/parts/display/compatible"
driver.get(url)
sleep(5)
#getting breadcrumbs
bread1 = driver.find_element_by_xpath("//span[@class='prod-catagory-name']")
bread2 = driver.find_element_by_xpath("//span[@class='prod-catagory-name']/a")
#grabbing table data and navigating
pages = int(driver.find_element_by_xpath("//div[@class='page-container']/span[@class='icon-s-right active']/preceding-sibling::span[1]").text)
num = pages -1
for _ in range(num):
rows = driver.find_elements_by_xpath("//table/tbody/tr/td[2]/div")
for row in rows:
parts = row.text
with open(filename, 'a', encoding='utf-8') as file:
file.write(url + "," + bread1.text + "," + bread2.text + "," + parts + "\n")
pagination = driver.find_element_by_xpath("//div[@class='pagecontainer']/span[@class='icon-s-right active']").click()
sleep(5)
driver.close()
Please let me know if I need to change or modify the code to get the substitutes.