在下面的代码中,我正在try 使用XCLASS提取以下代码中粗体政客姓名后面的文本.我能够将政客的名字和URL提取到他们的个人资料中,但我该如何提取下面的文本呢?

在下面的代码中,我try 使用以下命令来提取它:

desctext = elem.find_element(By.XPATH,".//b/following-sibling::text()")

我试过一百万种其他方法,但都没有用.例如,网站上写道:"100(R),前蒙大拿州国务卿,于2022年11月11日宣布参选.[35]斯台普顿于2023年10月13日退出竞选."

我想在科里·斯台普顿之后发短信.粗体标记中嵌入了一个href标记,文本紧随其后.

driver = webdriver.Chrome()
pres_candidates_url = "https://ballotpedia.org/Presidential_candidates,_2024"
driver.get(pres_candidates_url)
   
elems = driver.find_elements(By.XPATH, "//div[@class='mw-parser-output']//ul//li")

all_members = []
for elem in elems:
    member = {}
    try:
        linktext = elem.find_element(By.XPATH,".//b//a")
    except:
        continue
    words = linktext.text.split()
    
    print
    # words = elem.text.split()
    
    count = 0
    for w in words: #linktext contains non-names so remove those based on more than one word being lowercase
        if w[0].islower(): 
            count +=1 
    if count < 1:
        name = linktext.text
        member_url = linktext.get_attribute("href")
        try:
            desctext = elem.find_element(By.XPATH,".//b/following-sibling::text()")
        except:
            print("error")
        if "(D)" in desctext:
            party = "Democrat"
        elif "(R)" in desctext:
            party = "Republican"
        else:
            party = desctext
        metadata = {"Party:": party}
        print(name, member_url, metadata)
        member["name"], member["url"], member["metadata"] = name, member_url, metadata 
    else:
        continue
    all_members.append(member)

推荐答案

我看不到任何 Select ,只能找到父母并解析文本.您可以通过执行以下操作来获得父母:

parents = elem.find_elements(By.XPATH,".//b/a/../..")

这将找到所有粗体的锚/链接,并上升两个级别然后,您必须解析其生成的文本内容.

您无法使用following-sibling找到它,因为该文本不是sibling 元素(带有自己的标记)

Python相关问答推荐

Polars比较了两个预设-有没有方法在第一次不匹配时立即失败

使用新的类型语法正确注释ParamSecdecorator (3.12)

Pandas 有条件轮班操作

如何根据参数推断对象的返回类型?

形状弃用警告与组合多边形和多边形如何解决

如何根据一列的值有条件地 Select 前N组?

什么是最好的方法来切割一个相框到一个面具的第一个实例?

当我try 在django中更新模型时,模型表单数据不可见

lityter不让我输入左边的方括号,'

dask无groupby(ddf. agg([min,max])?''''

如何使用OpenGL使球体遵循Python中的八样路径?

如何找出Pandas 图中的连续空值(NaN)?

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame

Polars map_使用多处理对UDF进行批处理

如何根据rame中的列值分别分组值

极点替换值大于组内另一个极点数据帧的最大值

Pandas:将值从一列移动到适当的列

使用美汤对维基百科表格进行网络刮擦未返回任何内容

如何在Polars中将列表中的新列添加到现有的数据帧中?

如何在不不断遇到ChromeDriver版本错误的情况下使用Selify?