【问题标题】:BeautifulSoup find_all give me the value of the last element onlyBeautifulSoup find_all 只给我最后一个元素的值
【发布时间】:2022-01-21 16:39:23
【问题描述】:

你好,希望你们一切都好,我编写了以下程序来从它的源中提取数据,但它给了我最后一个值,我不知道为什么

users_list = soup.find_all("li", class_= "ContentGrid-gridItem-2Ad e2e-ContentGriditem")
for user in users_list:

name = user.find("span", class_ = "e2e-UserSummary-displayName")
profile_link = user.find('a', class_='UserSummary-ownerLink-1cJ')

变量 profile_link 给了我这个输出

<a class="UserSummary-ownerLink-1cJ" 
href="https://www.behance.net/baianat?tracking_source=search_users" 
target="_blank"></a>

我想让它只返回链接

另一件事我还构建了其他变量来返回值,但它一直返回相同的值,因为它具有相同的类,并且它们都在 h4 中,这是代码,它返回第一个对象的值,即赞赏 189.9k

appreciations = users.find("h4", class_= "UserSummaryStats-statAmount-13R").text
followers = users.find("h4", class_= "UserSummaryStats-statAmount-13R").text
project_views = users.find("h4", class_= "UserSummaryStats-statAmount-13R").text

【问题讨论】:

    标签: python loops for-loop web-scraping beautifulsoup


    【解决方案1】:

    要仅提取标签的 href 属性,您可以使用 tag['&lt;attr&gt;']。例如:

    profile_link = user.find('a', class_='UserSummary-ownerLink-1cJ')['href']
    

    对于第二种情况,只需使用 .find_all(&lt;tag_name&gt;, &lt;params&gt;) 方法,它将所有带有定义参数的标签作为列表返回:

    user_data = users.find_all("h4", class_= "UserSummaryStats-statAmount-13R")
    for entry in user_data:
        # do something with each entry
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 2021-05-16
      • 1970-01-01
      相关资源
      最近更新 更多