如何使用Selenium Python将链接提取转换为有效元素?

guicsvcw  于 2023-01-02  发布在  Python
关注(0)|答案(1)|浏览(131)

我需要将提取的URL的返回值转换为有效的元素。
代码捕获URL,然后输入每个URL以从页面提取数据
终点站出口

终端错误

links = []
classe = driver.find_elements(By. XPATH, "//*[@class='LinksShowcase_UrlContainer__kMj_n']/p")
for i in classe:
    sleep(0.5)
    links.append(i)
    print(links)
    sleep(2)
for linkAtual in links:
    driver.get(linkAtual)

我不能分享链接,因为这是一个平台,需要创建一个帐户,并接受,但链接是作为标签'P'内的文本,按照页面的图像
第一节第二节第一节第三节第一节第四节第一节

yyyllmsg

yyyllmsg1#

find_elements方法返回WebElement对象列表。
这些是而不是链接(字符串)。
WebElement是一个引用,一个指向网页上物理web元素的指针。
WebElement可能包含href属性,该属性通常包含一些链接。
如KunduK所述,anchor元素通常包含链接,而不是p标记元素。
因此,如果您收集的元素包含链接,您可以从WebElement对象中提取这些链接,并在以后使用它们。
我不能调试这个代码,因为你没有分享一个链接到你工作的页面,以及你没有分享你所有的Selenium代码,但我猜像下面这样的东西可以工作:

links = []
classe = driver.find_elements(By. XPATH, "//*[@class='LinksShowcase_UrlContainer__kMj_n']/p")
for i in classe:
    link = i.get_attribute("href")
    print(link)
    links.append(link)
for linkAtual in links:
    driver.get(linkAtual)
    • 统一采购司**

在您的例子中,它不是href属性,而是一个文本内容。因此,您可以简单地提取文本如下:

links = []
classe = driver.find_elements(By. XPATH, "//*[@class='LinksShowcase_UrlContainer__kMj_n']/p")
for i in classe:
    link = i.text
    print(link)
    links.append(link)
for linkAtual in links:
    driver.get(linkAtual)

相关问题