[我是使用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”的列表内]
您可以使用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)