我正在刮这个我需要从中获取工资值,如下所示image https://i.stack.imgur.com/ozPGs.png
我试图做到以下几点:
import requests
from bs4 import BeautifulSoup
result = requests.get("https://wuzzuf.net/jobs/p/xGYIYbJlYhsC-Senior-Python-Developer-Cairo- Egypt?o=1&l=sp&t=sj&a=python|search-v3|hpb")
page = result.content
soup = BeautifulSoup(page, "lxml")
salaries_div = soup.find_all("div",{"class":"css-rcl8e5"})
for span in salaries_div[3].select("span"):
print (span)
但我只得到这个跨度
<span class="css-wn0avc">Salary<!-- -->:</span>
我的问题是为什么我无法获得 div 内的所有跨度?
在这种情况下我应该怎么做才能获得工资值?
由于 Beautiful Soup 只是一个解析器,用于处理您提供的内容,因此它与页面检索或渲染无关。
我在我的案例中找到的解决方案是使用 selenium 来获取 JS 渲染页面。
工作代码:
from bs4 import BeautifulSoup
from webdriver_manager import driver
from webdriver_manager.chrome import ChromeDriver, ChromeDriverManager
from selenium import webdriver
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://wuzzuf.net/jobs/p/xGYIYbJlYhsC-Senior-Python-Developer-Cairo-Egypt?o=1&l=sp&t=sj&a=python|search-v3|hpb")
page = driver.page_source
soup = BeautifulSoup(page, "lxml")
salaries_div = soup.find_all("div",{"class":"css-rcl8e5"})
for span in salaries_div[3].select("span"):
print (span)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)