python - 在 selenium 和 python 的帮助下编写了一个网页抓取脚本,但没有从我的打印中得到任何输出?
问题描述
我试图通过使用 selenium 和 python 编写一些代码来抓取一家食品店。但是,我很难从我的代码中获得良好的输出。下面的代码显示了我到目前为止所做的事情,图片显示了输出。感觉这应该很容易,但我真的不明白为什么我没有得到任何输出.....
代码
import selenium
from selenium import webdriver as wb
import pandas as pd
import time
#Initilise
driver = wb.Chrome('chromedriver.exe')
driver.get('https://www.coop.se/butiker-erbjudanden/coop/coop-ladugardsangen-/')
print(driver.current_url)
print(driver.title)
products= driver.find_elements_by_class_name("Grid-cell u-size1of2 u-xsm-size1of2 u-md-size1of4 u-lg-
size1of6 js-drOffer js-offerItem")
for product in products:
header = product.find_elements_by_class_name("ItemTeaser-heading")
print(header.text)
解决方案
要获取产品项目标题列表,请使用以下css selector
.
诱导allItemheader()
并等待presence_of_all_elements_located
()
allItemheader=WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,".ItemTeaser h3.ItemTeaser-heading")))
for header in allItemheader:
print("Item Header: " + header.get_attribute("innerHTML"))
您需要导入以下库。
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
控制台输出:
Item Header: Färska miniburgare
Item Header: Kaffe/Ekologiskt kaffe
Item Header: Krögarpytt
Item Header: Vaniljyoghurt
Item Header: Läsk
Item Header: Juice
Item Header: Smör
Item Header: Kycklingbröstfilé
Item Header: Fikabröd
Item Header: Färska miniburgare
Item Header: Soppa/Ekologisk soppa
Item Header: Rismellis
Item Header: Julstjärna
Item Header: Morötter i påse
Item Header: Sill i glas
Item Header: Amaryllis
Item Header: Vaniljyoghurt
Item Header: Kycklingfärs
Item Header: Smörgåspålägg
Item Header: Läsk
Item Header: Mjuk kaka
Item Header: Juice
Item Header: Ekologisk Fetaost
Item Header: Gurka
Item Header: Lindösalami Chili
Item Header: Smör
Item Header: Wienerkorv/Varmkorv med skinn
Item Header: Gräddost
Item Header: Ekologisk Tofu
Item Header: Julrevbensspjäll
Item Header: Lammytterfilé
Item Header: Plommontomater i ask
Item Header: Satsumas
Item Header: Champinjoner i ask
Item Header: Amerikanska Pannkakakor
Item Header: Benfri fläskkotlett
Item Header: Stekfläsk
Item Header: Ekologisk alkoholfri glögg
Item Header: Färskost
Item Header: Öl 3,5 %
Item Header: Röd grapefrukt
Item Header: Fläckborttagning
Item Header: Babyvåtservetter 64-pack
Item Header: Ekologiska kokosflingor
Item Header: Kaffe/Ekologiskt kaffe
Item Header: Müsli
Item Header: Ekologiska majssnacks
Item Header: Frukt-/bärrullar
Item Header: Cashew Havssalt
Item Header: Ljusstake Bea
Item Header: Julservetter
Item Header: Fiskpinnar 30-pack
Item Header: Julmugg
推荐阅读
- php - 当 WooCommerce 中的最小值等于最大值时,在购物车页面上将数量输入显示为只读
- c# - 统一对象不旋转
- docker - 无法在 docker 上设置 Jenkins slave
- c++ - 从控制台获取多个字符串并将它们写成 C++ 中的列表
- regex - 用于匹配和替换“<”和“>”的正则表达式
- python - Python错误 - 列表索引超出范围错误但不是
- phoenix-framework - Presence Chapter Presence Phoenix 1.4.6 Guides raises for Identifier 'socket' 已经被声明
- javascript - 如何按空格分割字符串?
- php - 如何加入或组合用 php 和 html 编写的代码与 python?
- webpack - 有没有办法在不编译成 CSS 的情况下为 LESS 文件添加前缀?