无法从网站上抓取一些 "div" 标签

Can't scrape some "div" tags from a site

我正在尝试从此页面抓取招聘信息:https://www.fl.ru

可能是个新手问题,但事实证明我可以获取某些标签,而其他标签似乎无法访问,例如:

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("https://www.fl.ru/projects/")
bsObj = BeautifulSoup(html, "lxml")

textTags = bsObj.findAll("div", class_="b-post__txt ")
print(str(textTags))

谢谢

许多现代网页使用 Javascript 在浏览器中动态构建 DOM,您要查找的部分在浏览器完成页面构建之前不存在。

如果您使用的不是具有 Javascript 功能的浏览器或库,您要查找的页面元素将根本不存在。

如果您使用某些下载程序(wgetcurl)下载页面 html,您会发现这些元素根本不在页面中。元素由 javascript.

生成

例如(来自页面源代码的片段):

<script type="text/javascript">document.write('<div class="b-post__body b-post__body_padtop_15 b-post__body_overflow_hidden b-layuot_width_full"> <div class="b-post__txt "> У нас есть для вас вакансия Full-stack PHP-разработчика на удаленную работу (полный рабочий день) или в офис (г. Москва).&nbsp; Работать нужно будет над нашими проектами, в том... </div> <div id="project-reason-3728923" style="display: none"> </div> </div>');</script>

你有两个选择:执行javascript(使用浏览器和selenium之类的东西来驱动它)或者手动解析它,使用beautiful soup获取<script>标签内容,然后提取 document.write() 中的文本并用漂亮的汤重新解析它。