我如何使用beautifulsoup找到特定的班级

时间:2019-06-25 17:33:33

标签: html python-3.x web-scraping beautifulsoup

我想运行一个带有请求和beautifulsoup的简单抓取机器人,但我无法指出我需要获取的元素,那就是令牌的欧盟价格

import requests
from bs4 import BeautifulSoup
link = "https://wowtokenprices.com/"
res = requests.get(link , headers={'User-Agent':'Mozilla/5.0'})
soup = BeautifulSoup(res.text,'html.parser')
container = soup.find_all("div", {"class":"col-sm-6 col-md-4 col-12 region-div eu-region-div"})
print (container)

打印输出的数据较少,其中包括我需要抓取的元素

2 个答案:

答案 0 :(得分:2)

您可以使用CSS选择器a[href="EU"] ~ p。这意味着选择href属性设置为<a>的标签"EU",然后选择第一个同级标签<p>。该标签包含您的值:

import requests
from bs4 import BeautifulSoup

link = "https://wowtokenprices.com/"
res = requests.get(link , headers={'User-Agent':'Mozilla/5.0'})
soup = BeautifulSoup(res.text,'lxml')

print(soup.select_one('a[href="EU"] ~ p').text)

打印:

183,491

答案 1 :(得分:0)

这是使用相邻兄弟组合器的另一种方式,它包含伪类。需要bs4 4.7.1

import requests
from bs4 import BeautifulSoup as bs

r = requests.get('https://wowtokenprices.com/')
soup = bs(r.content, 'lxml')
print(soup.select_one('a:contains(EU) + .money-text').text)