我想运行一个带有请求和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)
打印输出的数据较少,其中包括我需要抓取的元素
答案 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)