Try和Except要在Python中实现的函数

2024-06-09 22:11:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从内部站点提取组Id

它从位于我的桌面上的csv文件中获取的URL

下面的代码当前提取组ID没有任何问题,除非URL有效

但是我想一直运行这段代码,即使csv文件中有无效的url,也应该在桌面上的输出xls文件中显示“无效url”

下面是我的代码:


from selenium import webdriver
import pandas as pd
import time
import os

c=1

user = os.getlogin()
path = "C:/Users/"+user+"/Desktop/groupid.csv"
path1 = "C:/Users/"+user+"/Desktop/groupid.xlsx"
print(path)

reader = pd.read_csv(path)
driver =webdriver.Chrome('C:/chromedriver.exe')
driver.maximize_window()

reader['groupid'] = ''
for line in reader['URL']:
    print(line)
    driver.get(line)
    if c==1:
        time.sleep(60)

    time.sleep(5)
    groupid = driver.find_element_by_xpath('//*[@id="Xpath"]').text
    print(groupid)
    reader['groupid'][reader['URL']==line] = groupid
    c=c+1    
reader.to_excel(path1)
print("extraction Complete")


Tags: 文件csvpath代码importurltimedriver
2条回答

编辑:我对熊猫不是很熟悉。如果您想要一个“无效URL”列,您能不能使用与“groupid”相同的方法

reader['invalid_url'] = 'No'
reader['groupid'] = ''
for line in reader['URL']:
    try:
        driver.get(line)
    except WhateverExceptionYouNeedToHandle:
        reader['invalid_url'][reader['URL']==line] = 'Yes'
        c += 1
        continue
    ...

由于您不知道在哪一点上出现了哪一个错误,所以很难告诉您应该做什么

但我会假设你面对一个由Selenium提出的^{}

for line in reader['URL']:
    print(line)
    driver.get(line)

    # ...

    try:
        groupid = driver.find_element_by_xpath(
            '//*[@id="Xpath"]'
        ).text

    except NoSuchElementException:
        print("Could not find element by xpath. Maybe a bad URL?")
        c += 1
        # Tell python to go to next element in loop
        continue

    print(groupid)
    # ... 

相关问题 更多 >