gpt4 book ai didi

python - 为什么我不能在 Selenium 中使用 for 循环来抓取类元素?

转载 作者:行者123 更新时间:2023-12-04 07:24:00 25 4
gpt4 key购买 nike

我想刮这个 website使用 python 编程语言和 selenium。我能够在没有 for 循环的情况下轻松抓取数据,但是每当我使用 for 循环抓取元素时,我都会出错,我也尝试将 while 循环与 try 和 except 一起使用,但根本没有帮助。这是我的python代码:

from logging import exception
from typing import Text
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
import time
import pandas as pd
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import csv
from selenium import webdriver
PATH = "C:/ProgramData/Anaconda3/scripts/chromedriver.exe" #always keeps chromedriver.exe inside scripts to save hours of debugging
driver =webdriver.Chrome(PATH) #preety i,portant part
driver.get("https://www.gharghaderi.com/")
driver.implicitly_wait(10)
house = driver.find_elements_by_class_name('griddetails')
for x in house:
driver.get(x)
print(x.text)



这是我不断收到的错误 error after using for loop

最佳答案

当你写这个时:

for x in house:
这意味着,对于内部列表中的每个 x。
您的房屋列表包含类 griddetails 的所有 Web 元素
并且在循环中你正在做
driver.get(x)
这意味着您要打开每个网页元素,这是错误的。
此外 get()支持字符串格式的 URL。
相反,如果您只想打印详细信息,您可以这样做:
house = driver.find_elements_by_class_name('griddetails')
for x in house:
print(x.text)
这应该给你适当的输出。
示例输出:
रु. 2,50,00,000
Land: 0-4-0-4 Road: 12 ft
Chapali 2 Budhanilkantha, Kathmandu
Chandra Bahadur Karki
ID 472
更新 1:
house_list = []
house = driver.find_elements_by_class_name('griddetails')
for x in house:
house_list.append(x.text)
data = {
'Details': house_list
}
df = pd.DataFrame.from_dict(data)
df.to_csv('out.csv', index = 0)
进口:
import pandas as pd

关于python - 为什么我不能在 Selenium 中使用 for 循环来抓取类元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68316492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com