无法使用Python的Beautiful Soup从特定的span标签提取文本

DataMuncher

我目前正在抓取该网站以构建汽车数据集,并且在抓取时建立了一个方程式循环浏览网站的每个页面。但是,我无法提取完成这项工作所需的文本。

以下代码段是我要抓取的标签。我需要获取站点上的车辆数量。

<span class="d-none d-sm-inline">166 Vehicles</span>

此图显示了我要抓取的网站元素

以下是我用来刮除该元素的代码:

# Packages
import pandas as pd
import numpy as np
from bs4 import BeautifulSoup
import requests
    
print("Started web scrape...")
    
limit = 10
start = 0 #increment by limit
website = requests.get(f'https://www.sosubaru.com/new-inventory/index.htm?start={start}')
soup = BeautifulSoup(website.text, 'html.parser')
    
inventory_count = soup.select("span.d-none.d-sm-inline")[0].string
    
print(inventory_count)

此代码返回以下内容:

Started OR_GP_Roe_Motors web scrape...
Traceback (most recent call last):
  File "c:/mypath...", line 16, in <module>
    inventory_count = soup.select("span.d-none.d-sm-inline")[0].string
IndexError: list index out of range

然后我检查了一下为什么返回了soup.select给我的所有东西来得到错误代码:

inventory_count = soup.select("span.d-none.d-sm-inline")
print(inventory_count)

返回:

Started web scrape...
[]

为什么给我一个空的清单?

然后,我告诉它打印网站上的每个span标签以查看是否存在。结果打印出许多span标签,但不包括我要查找的标签。为什么我不能用漂亮的汤检测到它?是我使用的解析器吗?我尝试使用“ lxml”作为解析器,但没有任何改变。网站是否为html xmls文档,这与事实有关系吗?

我已经抓了一些网站,到目前为止还没有遇到任何类似的问题。

埃里克·特鲁特(Eric Truett)

所需的数据和标记不会出现在html源中,这意味着它们是由javascript添加的。您可以使用selenium在呈现页面后获取页面源,也可以使用request_html,requests_html具有类似于BeautifulSoup的API,并且可以选择在剪贴页面之前呈现页面的javascript。

from requests_html import HTMLSession

s = HTMLSession()
r = s.get(url)
r.html.render()
r.find . . . [whatever you want to search for]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何用 Beautiful Soup 提取 Span 标签

当有多个相似标签时,使用 Beautiful Soup 从特定 HTML 标签中提取文本

Python Beautiful Soup:如何提取标签旁边的文本?

使用 Beautiful Soup 从选定标签中提取文本

如何使用Beautiful Soup在Python中的span标签内抓取文本

如何使用scrapy或beautiful Soup提取特定html标签的内容?

使用Beautiful Soup提取href元素内的特定psuedo标签

使用beautiful-soup提取特定标签的元素

使用 Beautiful Soup 提取文本

如何使用Beautiful Soup查找带有特定文本的标签?

如何使用Beautiful Soup查找带有特定文本的标签?

Python:使用 Beautiful Soup 从 HTML 标签中提取图像源

Beautiful Soup - 提取包含随机标记标签的完整文本句子

使用Beautiful Soup提取特定列表项

使用未包含在标签中的find_next _siblings / text提取Beautiful Soup跳过的文本

查找带有特定文本的<td>标签值(Beautiful Soup)

Beautiful Soup 4无法在Python 3.4.0中使用

使用Python Beautiful Soup在Web上抓取数据-无法提取字段

Beautiful Soup 4:仅从包含子标签的标签中提取文本

使用Python请求和Beautiful Soup从span标签中检索数字

使用Beautiful Soup提取div标签下的“ class”值

使用Beautiful Soup在相同属性的标签中提取数据

无法使用 Beautiful Soup 4 从对象中提取信息

无法使用Beautiful Soup抓取图像的'src'标签

使用Python和Beautiful Soup在非直接网页上提取文本

在 Python 中使用 Beautiful Soup 提取凌乱的、未标记的 HTML 文本

無法在 Python 中使用 Beautiful Soup 從元素中提取文本

使用Beautiful Soup提取同级文本节点

如何使用 Beautiful Soup 在 `p` 标签中获取文本?