首页 > 解决方案 > 通过 python Beautiful Soup 从网页中抓取 tab href 值

问题描述

我有从主页中提取链接并浏览链接列表中的每个页面的代码,新链接有一个标签页,在源代码中表示如下:

 <Li Class=" tab-contacts" Id="contacts"><A Href="?id=448&tab=contacts"><Span Class="text">Contacts</Span>

我想提取 href 值并导航到该页面以获取一些信息,这是我到目前为止的代码:

import re
import requests
from bs4 import BeautifulSoup
r = requests.get(link_to_the_website)
data = r.content  
soup = BeautifulSoup(data, "html.parser")
links = []

for i in soup.find_all('div',{'class':'leftInfoWrap'}):
    link = i.find('a',href=True)
    if link is None:
        continue
    links.append(link.get('href'))

for link in links:
    soup = BeautifulSoup(link,"lxml")
    tabs = soup.select('Li',{'class':'  tab-contacts'})
    print(tabs)

但是,我得到一个带有“打印(标签)”命令的空列表。我确实验证了链接变量并且它正在被填充。提前致谢

标签: pythonxmlbeautifulsoup

解决方案


看起来您正在尝试将find语法与select.

我会使用父 id 作为锚点,然后使用 css 选择器和子组合器导航到子节点。

partial_link = soup.select_one('#contacts > a')['href']

您需要附加适当的前缀。


推荐阅读