Webscraping Selenium和PhantomJS返回文本以获取产品详细信息

问题描述 投票:0回答:1

[我是使用python进行网络抓取的菜鸟,我正尝试使用Selenium和phantomJS检索网页的产品详细信息文本,因为当我使用“ driver.page_source”时,此页面未显示渲染的html,代码是这个:

url = 'https://www.jumbo.cl/frutas-y-verduras?page=1'
driver = webdriver.PhantomJS()
driver.get(url)
html = driver.page_source

不幸的是,这样做我在不可视化呈现格式的情况下检索了相同的源代码

我返回的代码摘录:

categoryId\\":\\"21\\",\\"productTitle\\":\\"Champiñón 200 g | Jumbo.cl\\",\\"metaTagDescription\\":\\"Encuentra Champiñón 200 g y la mejor variedad de Verduras en Jumbo.cl\\",\\"releaseDate\\":\\"2017-08-24T00:00:00\\",\\"clusterHighlights\\":{\\"325\\":\\"Dia de la fruta y verdura\\",\\"3554\\":\\"Vitrina 3554 limpia\\",\\"3862\\":\\"EXCLUSIVO 31082019\\",\\"3864\\":\\"DESPACHO 310819\\"

目标代码的提取(我可以将这些代码可视化到chrome控制台中,但是当我访问源代码时,页面将向我返回上面的代码)。

<li class="shelf-item">
  <div class="shelf-product-island">

具有每个产品的详细信息值的容器在类“ shelf-item”的列表内]

python html selenium phantomjs headless
1个回答
0
投票

您可以使用chromedriver代替PhantomJS()和下面的代码:

from selenium import webdriver

driver = webdriver.Chrome('./chromedriver')

def parse(url):
    driver.get(url)

    driver.implicitly_wait(10)
    title_list = driver.find_elements_by_xpath('//a[@class="shelf-product-title"]/h2')

    title_list_text = [t.get_attribute('textContent') for t in title_list]

    return title_list_text

titles_list = parse("https://www.jumbo.cl/frutas-y-verduras?page=1")

print(titles_list)
© www.soinside.com 2019 - 2024. All rights reserved.