当我想显示视图源时,它看起来像这样:
<li class="results__list-container-item"></li>
但是当我在Firefox中单击“检查元素”时,会看到类似以下内容:
<li class="results__list-container-item"><div class="offer offer--normal"><a class="offer__click-area" href="/praca/data-engineer-for-bixby-voice-assistant-krakow,oferta,7201566"></a><div class="offer__info"><div class="offer-details"><div class="offer-logo"><a href="https://pracodawcy.pracuj.pl/company/18797776/profile" class="offer-logo__link"><img src="https://i.gpcdn.pl/oferty-loga-firm/wyniki-wyszukiwania/14032.png" alt="logo" class="offer-logo__image"></a></div><div class="offer-details__text"><h3 class="offer-details__title"><a class="offer-details__title-link" href="/praca/data-engineer-for-bixby-voice-assistant-krakow,oferta,7201566">Data Engineer for Bixby Voice Assistant</a></h3><p class="offer-company"><span class="offer-company__link-wrapper"></li>
是否可以通过网络抓取工具(BeautifulSoup4)提取隐藏的内容?
答案 0 :(得分:1)
隐藏的内容通常是通过JS生成的。如果您对网页进行请求,则该网页将不包含隐藏的HTML,因为必须将页面加载到浏览器中才能加载隐藏的内容。我们可以通过使用硒Web浏览器实际打开页面,然后从渲染的页面获取HTML来解决此问题。
from selenium import webdriver
from bs4 import BeautifulSoup
browser = webdriver.Firefox()
browser.get('example-url.com')
html = browser.page_source
soup = BeautifulSoup(html,features='html.parser')
hidden_divs = soup.find_all('div', {'class':'offer offer--normal'})
当然,我们需要您要查看的URL进行实际测试,但这通常是它的工作方式。