javascript - 我无法获取 HTML 页面上元素的值

标签 javascript html css web-scraping screen-scraping

我正在从 this page 中提取数据.我能够获得我需要的所有信息,除了前 100 名中每个故事的“排名”(每个元素标题左侧的数字。)当我检查元素时Chrome,我找不到任何将数字写入页面的 HTML 代码,而且数字似乎不是图像。在 HTML 源代码中,指向数字的元素是“::before”:

<li class="bucket-item">
<div data-post-id="dfa6bc73bd8a" class="post-item post-item-small post-status-">
::before <!-- this is what points to the number of the page-->
...

是否有代表帖子在前 100 名中的排名的脚本或图像是我遗漏的?

最佳答案

先不考虑您的行为是否违反了 Medium 的服务条款,::beforeCSS pseudo-element .它不会出现在 HTML 标记中,但就像一个虚拟元素,注入(inject)到特定选择器的元素之前,您可以对其应用样式。

在这种情况下,选择器是 .ordered-posts .post-item-small:before , 所以伪元素被插入到每个 .post-item-small 之前出现在 .ordered-posts 中元素。

伪元素常与CSS生成的内容结合使用,可以在伪元素中添加一些显示内容。在这种情况下,内容是从 CSS 计数器生成的,每次出现匹配元素时该计数器都会递增,因此列表看起来是有编号的!如果您重新订购,您不必担心更新所有数字;柜台会自动为您处理。很酷!

这是 ::before 的一个很好的引用伪元素,以及一篇很好的 CSS 文章 content属性(property)。

只是为了好玩:关于一些的精彩帖子 cool stuff你可以用伪元素来做。

关于javascript - 我无法获取 HTML 页面上元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199445/

相关文章:

javascript - 在绝对 div 中嵌入 iframe 时的浏览器问题

php - jQuery 复选框值依赖提交按钮操作

javascript - 同一域的不同选项卡使用单独的本地存储

html - 手机网站 "WhatsApp"发送消息到特定号码的按钮

css - 顶部下拉导航菜单在右侧而不是左侧显示最后一个菜单项的子项?

css - 组合过滤器和 :hover in Chrome 时的奇怪行为

javascript - 如何在没有框架的情况下检查 DOM 是否准备就绪?

php - 也可以在 php 和 html 和 javascript 悬停效果中导航

Javascript 光标缩放

html - 为什么 Android 和 iOS 浏览器默认呈现的网站宽度比设备屏幕宽度宽?