无法从包含过滤器的网站中提取文本



我正在尝试使用Python,Requests和BeautifulSoup从以下网站(www.mars.com/locations(获取所有位置。

该网站有一个过滤器来选择洲、国家和地区,以便它只显示公司在所选区域的位置。他们还在页面底部包括他们的总部,无论应用何种过滤器,此信息始终存在。

使用以下代码提取总部的数据没有问题:

import requests
from bs4 import BeautifulSoup
url = 'https://www.mars.com/locations'
page = requests.get(url)
soup = BeautifulSoup(page.text,'html.parser')
HQ = soup.find('div', class_='global-headquarter pr-5 pl-3').text.strip()
print(HQ)

代码的输出为:

玛氏公司(全球总部( 6885榆树街 麦克莱恩 弗吉尼亚州 22101 +1(703( 821-4900

我想对所有其他位置做同样的事情,但我正在努力使用相同的方法提取数据(当然,调整路径(。我已经尝试了一切,但我没有想法。真的很感激有人帮我一把,或者至少为我指出正确的方向。

提前非常感谢!

所有位置数据都可以以文本格式检索。将其分解为字符串是一种方法。我不是这个领域的专家,所以我不能再帮助你了。

content_json = soup.find('div', class_='location-container')
data = content_json['data-location']

我不是BeautifulSoup的专家,所以我将使用Parsol来获取数据。 所有位置都嵌入在具有data-location属性的location-containerCSS 类中。

import requests
from parsel import Selector
response = requests.get(url).text
selector = Selector(text=response)
data = selector.css(".location-container").xpath("./@data-location").getall()

最新更新