我目前正在尝试创建一个python脚本,可以进入Menards网站,获取他们所有的产品描述、SKU和价格,然后将它们导入excel文件。这样我就可以用他们的产品创建透视表或做其他事情。目前,我可以通过使用XPath等工具使其工作。但这种方法并不十分健壮,因为它依赖于每个不同网页的特定路径。我想做的是做一些更强大的东西,可以用在我正在看的网站上。
这些是我指的网站。
https://www.menards.com/main/electrical/conduit-conduit-fittings-raceways/conduit/c-6423.htm?queryType=allItems&rid=ipKkIrbnch&shippingOptions_facet=Pickup+at+Store+Eligible'
https://www.menards.com/main/electrical/conduit-conduit-fittings-raceways/conduit-fittings-supports/c-9538.htm queryType=allItems&shippingOptions_facet=Pickup+at+Store+Eligible&sortby=priceAsc'
https://www.menards.com/main/electrical/light-switches-dimmers-outlets/light-switches/c-6324.htm?queryType=allItems&Spec_Color%2FFinishFamily_facet=Ivory&Spec_Color%2FFinishFamily_facet=Light+Almond&Spec_Color%2FFinishFamily_facet=White&shippingOptions_facet=Pickup+at+Store+Eligible&sortby=priceAsc/'
IRW=
https://www.menards.com/main/electrical/electrical-wire-cable/indoor-electrical-cable/c-6441.htm?queryType=allItems&rid=HA1P3WveKh&shippingOptions_facet=Pickup+at+Store+Eligible
这是我目前试图找到一个更健壮的设计的代码。
driver.get(website.get('IRW'))
driver.minimize_window()
description = driver.find_elements(By.CSS_SELECTOR, ".search-item")
print(len(description))
for ll in range(0, 1):
print(description[ll].text)
目前,这段代码只是通过其类名“搜索项”定位网页上的所有元素。它定位了大部分元素等等,但是我得到了很多垃圾和我想要的结果。
下面是代码输出的示例:
> 11 Click here to go to detail page Bestseller 12 Variations Available
> 12 Gauge NM-B Cable with Ground Wire Click to add item "12 Gauge NM-B
> Cable with Ground Wire" to the compare list Compare Click to add item
> "12 Gauge NM-B Cable with Ground Wire" to the compare list Add To List
> Click to add item 12 Gauge NM-B Cable with Ground Wire to your list
> Sku # 3691660 $25.79 You Save $3.19 with Mail-In Rebate More
> Information Shipping CHOOSE VARIATION None
我想避免替换当前字符串,并进行大量循环以获取值,因为所有这些垃圾在每个网页上都不一致。我希望这是一种更好的定位元素的方法。有什么想法吗谢谢!