python - 通过 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)
但是,我得到一个带有“打印(标签)”命令的空列表。我确实验证了链接变量并且它正在被填充。提前致谢
解决方案
看起来您正在尝试将find
语法与select
.
我会使用父 id 作为锚点,然后使用 css 选择器和子组合器导航到子节点。
partial_link = soup.select_one('#contacts > a')['href']
您需要附加适当的前缀。
推荐阅读
- python - 我想使用 pyscreenshot 截取网页上特定区域的屏幕截图
- wordpress - 是否有 $content 变量可以通过过滤器修改页面内容?
- extjs - 自定义缓冲网格分页参数
- react-native - 不断收到“未定义不是对象(评估'this.props.navigation.navigate')”
- c# - 射击时如何仅减慢子弹速度?
- firebase - FireStore:查询 Firebase Auth 表?
- assembly - 使用 QtSpim 用 MIPS 代码判断素数
- angular - 如何在角度 2 中正确显示列表
- firebase-realtime-database - 使用 Firebase 过滤数据
- android - 在android中刷新片段时单选按钮不起作用