python-2.7 - 亚马逊页面上产品详细信息的 xpath
问题描述
我正在尝试在此页面的第二列中获取产品详细信息:
我正在使用以下 xpath
://*[@id="productDetailsTable"]/tbody/tr/td/div[2]/ul/li/text()
代码:
if self.hasXpath('//*[@id="productDetailsTable"]/tbody/tr/td/div/ul/li/b'):
prod_info_dt = []
prod_info_dd = []
prod_info_dt_list = self.browser.find_elements_by_xpath('//*[@id="productDetailsTable"]/tbody/tr/td/div/ul/li/b')
prod_info_list_count = len(prod_info_dt_list)
for curr_prod_dt_info in prod_info_dt_list:
prod_info_dt.append(curr_prod_dt_info.get_attribute('innerHTML').encode('ascii','ignore').strip().replace('.','_'))
prod_info_dd_list = self.browser.find_elements_by_xpath('//*[@id="productDetailsTable"]/tbody/tr/td/div[2]/ul/li/text')
for curr_prod_dd_info in prod_info_dd_list:
if curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip()=='<i class="fi-x"></i>':
prod_info_dd.append("No")
elif curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip()=='<i class="fi-check"></i>':
prod_info_dd.append("Yes")
else:
prod_info_dd.append(curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip())
for x in range(prod_info_list_count):
product_dict[prod_info_dt[x]] = prod_info_dd[x]
解决方案
我不确定你在关注哪个价值。如果您正在关注产品的描述,您xpath
应该这样做。
elements=driver.find_elements_by_xpath("//div[@id='feature-bullets']/ul/li/span")
proddesc=[]
for ele in elements:
print(ele.text)
proddesc.append(ele.text)
print(proddesc)
推荐阅读
- excel - 如何使用 .List 函数填充列表框?
- hibernate - 如何解决jpa存储库保存方法中的多线程
- docker - Visual Studio Docker Compose - 在调试会话结束后停止并删除容器
- amazon-web-services - redshift 用户定义的 Lambda 函数返回错误
- javascript - Javascript:打开新窗口并从当前窗口复制 css 引用
- java - Java 正则表达式捕获组但不匹配()
- java - Postgresql 中的有符号与无符号 bigint
- typescript - 如何为 Typescript 和 Vue 3.0 配置类型(捆绑器和运行时编译)
- android - Android 应用程序错误 android.view.InflateException。使用 Jetpack 导航组件
- http - 有没有办法区分与 IntermediateSystem 相关的 HTTP 请求和响应标头?