当前位置: 首页 > 知识库问答 >
问题:

尝试使用Selenium刮取数据>

尉迟正平
2023-03-14

我试图使用Selenium从代码中获得jpg。我已经设法找到了链接点击获得我的jpg所在的位置。(真倒霉!我刚接触硒)。所有的窗户都随着它的点击而打开。与刮刮乐相比,它真的很慢,所以如果有人能告诉我一个更快的方法,那就太好了。

我试图搜索的网站是www.rosegal.com。我正在刮的类别是大尺寸的背心。这第一页有60个产品在它。如果单击这些产品,它会将您带到一个产品页面,在该页面上您可以选择所需的尺寸、颜色和数量。

    from selenium import webdriver

    chrome_path = r"C:/Users/daver/Downloads/chromedriver_win32 
    (4)/chromedriver.exe"

    driver = webdriver.Chrome(chrome_path)

   driver.get("https://www.rosegal.com/plus-size-tank-tops-482/")

   driver.find_element_by_xpath("""//* 
   [@id="js_proList"]/ul[1]/li[1]/div/div/p""").click()

   #This is what I tried this to get my jpg:   

  image1_element = driver.find_element_by_xpath("""//* 
  [@id="goods_thumb_content"]/ul/li[1]/img""")

  print("image1_element")
  print(image1_element)

  image1_element = driver.find_element_by_xpath("""//* 
  [@id="goods_thumb_content"]/ul/li[2]/img""")

  print("image2_element")
  print(image2_element)

  image1_element = driver.find_element_by_xpath("""//* 
  [@id="goods_thumb_content"]/ul/li[3]/img""")

  print("image3_element")
  print(image3_element)





   **This is the code the jpg is embedded:**

<div id="js_zoom_img" style="position: relative; overflow: hidden;">  
    <img data-zoomimg="https://gloimg.rglcdn.com/rosegal/pdm-product- 
    pic/Clothing/2019/06/18/source-img/20190618173639_71567.jpg" 

也试图回到页面上的60个产品,这样我就可以刮掉其他产品。

共有1个答案

薄欣怿
2023-03-14

下面的代码将帮助您单击每种颜色并打印与之关联的所有图像。

#To click on each color
Colors = driver.find_elements_by_xpath("//p[@class='attr-choose clearfix goods_property_color']//a")

for color in Colors:
    print("Clicking on color: ",color.get_attribute('data-value'))
    color.click()
    time.sleep(2)
    #now collect all the image urls for the color
    images = driver.find_elements_by_xpath("//div[@id='goods_thumb_content']//li")
    print("Total images",len(images))
    for image in images:
        print(image.get_attribute('data-bigimg'))
 类似资料:
  • 我试着在香港列出所有餐馆和他们的相应网址。目前,在我下面的代码中,我能够刮取第一页和第二页。但我希望底部的for循环更具动态性,并不断刮取,直到达到我在range()中指定的条目数量。 我在这方面还是个新手,所以任何帮助都会很棒。

  • 我最近问了一个问题(这里引用:Python Web Scring(Beautiful Soup、Selenium和PhantomJS):只刮整页的一部分),这有助于确定我在滚动时动态更新的页面上刮所有内容时遇到的问题。然而,我仍然无法使用selenium来使用代码指向正确的元素,并迭代地向下滚动页面。我还发现,当我手动向下滚动页面时,有一些原始内容在页面加载时消失,而新内容则更新。例如,看下面的图

  • 我刚刚开始学习python。所以在这一章中,基本上是使用硒创建一个价格跟踪器。 下面的照片是我使用selenium试图获得的。 截图 如果我尝试 它显示了红海的线条,没有布赫的信息:没有这样的元素 然后我试着 输出为: 我真的是编程新手...所以我试着在最后使用. text,运气不好! 我怎么做才能得到价格?

  • 问题内容: 我正尝试在此网站上搜索selenium表中的清单。我是新手,并编写了以下代码: 但是,我可以获取以下标签,但不能获取其中的数据。 我以前也尝试过BS4进行刮擦,但失败了。任何帮助深表感谢。 问题答案: 该 结果是在一个iframe -切换到它,然后得到: 我还要添加一个等待表加载的方法:

  • 我正在使用Maven创建一个Selenium项目,其中我试图从Excel文件(xlsx)中读取“username”和“password”。 这是密码- 我得到的错误在这一行: Driver.FindElement(By.XPath(“//input[@type='text']”)).SendKeys(Sheet.GetRow(i).GetCell(j).GetStringCellValue());

  • 我试图从JSP页面获取一些数据,该页面有一个带有分页的表,我试图从每个表页面获取值。 正如我可以看到每个元素都是动态创建的,带有服务器设置的类和名称以及时间戳和其他东西,所以我必须在DOM上使用尽可能多的通用数据来获取它们。 点击第一页后,页面会生成第二个分页器,这将是真正的分页器。 问题是我从分页器处理了3个页面后,我得到了以下错误: '陈旧元素引用:元素未附加到页面文档(会话信息:chrome