机器爬行 HTML 代码,会区别实际 display: none 的元素吗?

2015-12-16 12:10:18 +08:00
 az
2202 次点击
所在节点    问与答
14 条回复
DT27
2015-12-16 12:11:58 +08:00
一般情况下都会设计成区别 display:none 之类的元素的。
az
2015-12-16 12:13:38 +08:00
@DT27 就是机器爬行的时候,也会解析 css 代码吧?
az
2015-12-16 12:15:40 +08:00
@DT27 比如,主 css 这样定义机器还是能识别的吧?
.captcha-spans span:first-child {
display: none;
}
DT27
2015-12-16 12:16:21 +08:00
@az 你说的是什么机器?如果说百度之类的采集机器的话,不区别。如果是整站下载之类的机器,会把原样采集下来。
如果是仅采集 HTML 页面内容,隐藏内容不会出来。
如果是 HTML 代码,那不论隐藏不隐藏只要是 html 里的都会出来。。。
az
2015-12-16 12:21:42 +08:00
@DT27 就是一般破解验证码的机器。想通过在主 css 隐藏部分 span 来迷惑这类机器。
jessynt
2015-12-16 12:43:45 +08:00
@az 爬虫?一般都不解析 css 啊, css 是给人类看的吧
ChiChou
2015-12-16 12:53:54 +08:00
爬虫不是浏览器,可以把 HTML 原封不动地抓下来,你可以自行使用 CSS Parser 处理,或者直接上 headless browser 自动渲染
DT27
2015-12-16 12:57:13 +08:00
@az 一般破验证码的都是定制化的,根据你的验证码单独定制规则。简单的隐藏迷惑是没用的。
DT27
2015-12-16 12:57:48 +08:00
@az 这就跟广告与去广告之间的关系一样。。。
Slienc7
2015-12-16 13:01:30 +08:00
基本不存在“一般破解验证码的机器”这类东西,大多都是手动分析 HTML ,然后针对你这个网站来写程序获取验证码,再破解的。
CSS 隐藏这种能坑掉一些小白。
JavaScript 动态加载验证码又能坑掉一堆小白。
然而这些并没有卵用,稍微基础扎实一点基本都能得到你的验证码地址,然后用的你的验证码去做识别或者连接打码平台破解。

根本的还是加强验证码强度,或者 reCaptcha 这类。
az
2015-12-16 13:44:09 +08:00
@xgowex reCaptcha 不考虑,人类识别会有困难
qq286735628
2015-12-16 13:46:19 +08:00
看你用什么爬。例如 PhantomJS 衍生出来的一系列无界面浏览器,这种爬页面,什么都能识别
如果仅仅是最早期的爬网页文件并解析 html ,那就识别不了 CSS 和 JS 了
DT27
2015-12-16 14:03:33 +08:00
@az “人类识别会有困难”,哈哈哈哈,比 12306 人性化多了啊。。。
Slienc7
2015-12-16 18:26:17 +08:00
@az
哪有困难,识别图像只有当 IP 请求次数触发上限 /不符合人类特征才有强制识别。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/243900

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX