尝试使用Selenium抓取数据>

时间:2019-08-07 16:39:22

标签: selenium web-scraping

我正在尝试使用硒从此代码中提取jpg。我已经设法  查找链接以单击以获取我的jpg文件所在的位置。 (愚蠢的运气!  我是硒新手。单击时,所有窗口都会打开。它的  与Scrapy相比,它真的很慢,所以如果有人可以告诉我更快的方法  那就太好了。

我要抓取的网站是www.rosegal.com。类别  我刮的是加大码的背心。第一页有60个产品  在上面。如果您单击这些产品,将带您到产品页面,其中  您可以选择所需的尺寸,颜色和数量。

每种颜色都有它自己的图像,所以我要做的是单击第一个  颜色,先刮擦与该颜色相关的大图像,然后再刮  第二种颜色刮擦该图像,依此类推。

我点击了要抓取的数据的路径。我已经导入  硒。我打电话给chromedriver。命名驱动程序,我已经加载了网址  我要开始并单击要刮的产品,然后我  单击我的jpg所使用的颜色,现在就可以获取我的jpg。

    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" 

尝试获取此jpg:

https://gloimg.rglcdn.com/rosegal/pdm-product- pic /服装/2019/06/18/source-img/20190618173639_71567.jpg

还要尝试返回上面有60种产品的页面,以便我可以 刮其他产品。

1 个答案:

答案 0 :(得分:0)

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

#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'))