爬虫提取 36 氪的文章正文,为什么抓取不到?

2016-05-03 19:29:41 +08:00
 xiaoyong

本人使用 PHP 的: file_get_contents 和 curl 函数都未曾获取到。就认真研究了下 36 氪的正文加载过程。

看了一下,它应该是使用 js 加载的正文内容。

如果禁用 js 调试,正文就没有内容;否则,就可以正常显示。但是查看了下所有的 js 文件也没看出来头绪,如果使用“网页另存为”本地文件,再用浏览器打开也是没有正文。

是不是使用了什么加密技术来获取正文(为了防止爬虫)?各位探讨一下。

4050 次点击
所在节点    问与答
10 条回复
binux
2016-05-03 19:33:58 +08:00
.js-react-on-rails-component
Syc
2016-05-03 19:36:37 +08:00
采集技术不够深,还需多多磨练
function007
2016-05-03 19:39:28 +08:00
感觉就是丧心病狂的转义。。
EchoWhale
2016-05-03 20:39:20 +08:00
这么丧心病狂地提防爬虫, 36 氪完全不需要讨好搜索引擎吗
Tink
2016-05-03 20:41:40 +08:00
卧槽,这个有点吊
titanp
2016-05-03 20:43:31 +08:00
这种站可能怕爬虫直接原文转
popok
2016-05-03 20:52:35 +08:00
正文都是直接在


但是最终显示出来,应该是通过一个 js 解析的


不是前段,只懂皮毛
popok
2016-05-03 20:53:45 +08:00
@EchoWhale 然而,人家爬虫还是收录的好好的
gimp
2016-05-03 21:10:58 +08:00
使用 selenium 简单粗暴 哈哈
qqmishi
2016-05-03 21:54:51 +08:00
#encoding=utf8
import requests
import json
import re

url="http://36kr.com/p/5045314.html"
r = requests.get(url).content
json_data = json.loads(re.sub(""","\"",re.search("data-props=\"([^\"]+)\"",r).group(1)))
print json_data['data']['post']['display_content']

其实抓到 json_data 之后,后面就随便处理了

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

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

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

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

© 2021 V2EX