我正在尝试从以下页面抓取职位信息: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))
谢谢
答案 0 :(得分:0)
如果使用某些下载程序(wget
或curl
)下载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-разработчика на удаленную работу (полный рабочий день) или в офис (г. Москва). Работать нужно будет над нашими проектами, в том... </div> <div id="project-reason-3728923" style="display: none"> </div> </div>');</script>
您有两种选择:执行JavaScript(使用浏览器和类似selenium的驱动程序)或手动解析,方法是使用漂亮的汤来获取<script>
标签内容,然后在{{ 1}},并配上精美的汤。
答案 1 :(得分:-1)
许多现代网页都使用Javascript在浏览器中动态构建DOM,而您要查找的部分在浏览器完成页面构建之前就不存在。
如果您不使用具有Javascript功能的浏览器或库,则所查找的页面元素将根本不存在。