I would like to scrape all the href for those watches :
https://www.godechot-pauliet.com/marques/cartier/
But, for example, when I want to find where the first url is : https://www.godechot-pauliet.com/marques/cartier/montre-pasha-de-cartier/
I use ctrl-f and I cannot find it anywhere. How could I scrape something I cannot find in the code source ?
CodePudding user response:
The href attribute of the <a>
contains the desired values. Though the values when extracted would appear as:
https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier/
but when accessed as a url_string would be converted as:
https://www.godechot-pauliet.com/marques/cartier/montre-pasha-de-cartier/
Solution
To extract the value of href
attributes you have to induce WebDriverWait for visibility_of_all_elements_located() and you can use either of the following locator strategies:
Using CSS_SELECTOR:
driver.get("https://www.godechot-pauliet.com/marques/cartier/") print([my_elem.get_attribute("href") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "a.woocommerce-LoopProduct-link.woocommerce-loop-product__link[href]")))])
Using XPATH_:
driver.get("https://www.godechot-pauliet.com/marques/cartier/") print([my_elem.get_attribute("href") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//a[@class='woocommerce-LoopProduct-link woocommerce-loop-product__link' and @href]")))])
Console Output:
['https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier/', 'https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-2/', 'https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-3/', 'https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-4/', 'https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-5/', 'https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-6/', 'https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-7/', 'https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-8/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-grand-modele-2/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-grand-modele-3/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-grand-modele/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-grand-modele-4/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-10/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-9/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-7/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-6/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-5/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-8/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-2/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-4/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-3/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-2/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-4/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-3/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-5/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-6/', 'https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-7/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-blanc-de-cartier-2/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-blanc-de-cartier-3/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-blanc-de-cartier/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-50/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-51/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-65/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-95/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-96/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-41/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-25/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-2/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-28/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-94/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-34/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-27/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-35/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-93/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-29/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-26/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-58/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-10/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-3/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-33/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-67/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-23/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-16/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-20/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-43/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-80/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-11/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-57/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-77/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-31/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-21/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-82/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-56/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-90/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-52/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-91/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-54/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-89/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-53/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-8/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-55/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-83/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-62/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-6/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-4/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-87/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-5/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-88/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-86/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-40/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-39/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-92/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-36/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-47/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-19/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-75/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-9/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-46/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-70/', 'https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-13/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-15/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-45/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-71/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-79/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-76/', 'https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-37/']
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
CodePudding user response:
The url isn't dynamic.So you can grab all hrefs using beautifulsoup.
import requests
from bs4 import BeautifulSoup
import pandas as pd
data=[]
headers= {'User-Agent': 'Mozilla/5.0'}
url = 'https://www.godechot-pauliet.com/marques/cartier/'
results = requests.get(url,headers=headers)
soup = BeautifulSoup(results.text, "html.parser")
for link in soup.select('.products.columns-3 li a:nth-child(2)'):
url=link.get('href')
print(url)
#To store data into a file
# data.append({
# 'url':url
# })
# df = pd.DataFrame(data)#.to_csv('data.csv',index=False)
# print(df)
Output:
https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-3/
https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-4/
https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-5/
https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-6/
https://www.godechot-pauliet.com/produit/marques/cartier/montre-pasha-de-cartier-8/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-grand-modele-2/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-grand-modele/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-grand-modele-4/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-10/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-9/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-7/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-6/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-5/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-8/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-2/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-4/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-mini-modele-3/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-2/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-3/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-5/
https://www.godechot-pauliet.com/produit/marques/cartier/baignoire-petit-modele-7/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-blanc-de-cartier-2/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-blanc-de-cartier-3/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-blanc-de-cartier/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-50/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-51/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-65/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-95/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-96/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-41/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-25/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-2/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-28/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-94/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-34/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-27/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-35/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-93/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-29/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-26/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-58/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-10/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-3/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-33/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-67/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-23/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-16/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-20/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-43/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-80/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-11/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-57/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-77/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-31/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-21/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-82/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-56/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-90/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-52/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-91/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-54/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-89/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-53/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-8/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-55/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-83/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-62/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-6/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-4/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-87/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-5/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-88/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-86/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-40/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-39/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-92/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-36/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-47/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-19/
https://www.godechot-pauliet.com/produit/best-sellers/ballon-bleu-de-cartier-75/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-9/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-46/
https://www.godechot-pauliet.com/produit/marques/cartier/ballon-bleu-de-cartier-70/