python - python中的Soup.select方法 - 如何只选择一个分数?

标签 python web-scraping beautifulsoup

我只想显示 soup.select 方法的第一个分数,现在我有以下代码:

score = soup.select('my_name a')
print(score)

urls = [tag['href'] for tag in score if 'href' in tag.attrs and "name" in tag['href']]
print(urls)

当 bs 只找到一个分数时,效果非常好。但是当我得到更多分数时如何只选择第一个分数?

现在输出是:

> [<a href="/name/adrian1021 "> Adrian </a>, <a href="/name/john.james"> John James </a>, <a href="/name/carol22 "> Carol Coat </a>]
> 
> ['/name/adrian1021 ', '/name/john.james ', '/name/carol22 ']

我只想提取一个分数,例如输出应该是:

[/name/adrian1021 ']

这可能吗?我尝试像列表中那样处理此问题,但它不起作用。

最佳答案

您正在寻找使用 soup.select_one() ,它仅查找与选择器匹配的第一个元素。

所以你的分数变量应该是:

score = soup.select_one('my_name a')

关于python - python中的Soup.select方法 - 如何只选择一个分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60252253/

相关文章:

python - 带有嵌套 if else 的 Lambda 不起作用

python - 如何在python icrawler中使用搜索关键字重命名爬虫文件

python - 如何使用python从网络浏览器获取内容?

python - BeautifulSoup 在 Amazon EC2 机器上表现不同

python - 创建多行输出文件 (Python)

python - aiohttp 的 Pip 安装失败并出现奇怪的 AttributeError _dep_map

python - KeyError : 'url_encoded_fmt_stream_map'

python - 使用 BeautifulSoup 获取 span 之间的文本

web-scraping - html5lib: TypeError: __init__() 得到一个意外的关键字参数 'encoding'

python - 使用 flask 和 flask-socketio 配置 nginx、uwsgi