如何访问父节点内的子节点

时间:2019-01-07 04:36:57

标签: beautifulsoup

我正在尝试从网页论坛中检索数据,但是他们的标签中没有正确的类,因此很难获取。 Image

我设法检索了除最后一个结果以外的其他结果;我不确定如何提取它。我尝试遵循其他人提供的一些解决方案。等等container.div.a,但是它只访问第一个,我不确定如何获取另一个。使用CSS选择器?

这是网址link

try:
    for container in _url.find_all('td', {'class': 'row1', 'valign': 'middle'}):
        topic = container.select_one(
            'a[href^="/topic/]"').text.replace("\n", "")
        description = container.select_one(
            'div.desc').text.replace("\n", "")
        #review_or_guide is what im trying to edit
        review_or_guide = container.find('a', href=True, {'style': 'float:right'}).text
        if topic and description is not None:
            #appends data to list
        else:
            None
except Exception as e:
    print('Error.extractDataFromRow1:', e)
    return None

所以我正在努力实现

Topic: Greetings
Description: Hi how are you
Status: Guide

2 个答案:

答案 0 :(得分:0)

您可以尝试

review_or_guide = container.select_one("a:nth-of-type(2)").text.strip()

这应该选择其中的第二个元素。

答案 1 :(得分:0)

在这里您可以遍历表行选择器#forum_topic_list> table> tbody> tr,并在循环内可以选择td:nth-​​child(3)> div> div:nth-​​child(2)> a 在jQuery中 或在CSS #forum_topic_list>表> tbody> tr> td:nth-​​child(3)> div> div:nth-​​child(2)> a中选择所有数据