我不知道如何抓取数据,我正在尝试从网站抓取产品名称、价格和其他信息,产品名称很容易访问,因为它们有类似的XPath,只有一个标记更改,但对于价格,标记有多个更改。有没有其他方法可以在没有XPath的情况下抓取数据,因为类名和ID返回空字符串。
driver= webdriver.Chrome('E:/chromedriver/chromedriver.exe')
product_name=[]
product_price=[]
product_rating=[]
product_url=[]
driver.get('https://www.cdiscount.com/bricolage/climatisation/traitement-de-l-air/ioniseur/l-166130303.html#_his_')
for i in range(1,55):
try :
productname=driver.find_element('xpath','//*[@id="lpBloc"]/li['+str(i)+']/a/div[2]/div/span').text
product_name.append(productname)
except:
print("none")
print(product_name)'''
Xpath of the price:
1st items price
```//*[@id="lpBloc"]/li[1]/div[2]/div[3]/div[1]/div/div[2]/span[1]```
2nd items price
'''//*[@id="lpBloc"]/li[2]/div[2]/div[2]/div[1]/div/div[2]/span[1]'''
1条答案
按热度按时间xjreopfe1#
您不需要使用硬编码循环,而是标识唯一的XPath来标识父元素,然后再标识子元素。只有评级并不适用于可以使用
try..except
块的每一种产品。