爬虫提取这种 html 有什么好的方法啊

2019 年 2 月 6 日
 xe2vherd

最近在写微博的爬虫,本来是想用 scrapy 的 xpath 提取内容,在 chrome 的 console 中试了下还正常,然而在代码中 xpath 却什么也提取不出来。

最终忽然发现 chrome 中的 elements 里面的内容和网页源码是不一样的。看了源码之后网页上的 html 竟然全都是 js 动态生成的,好二哦。

就像下面这样。

Element:

Source:

<script>FM.view({"ns":"pl.header.head.index","domid":"Pl_Official_Headerv6__1","css":[],"js":"page/js/pl/header/head/index.js?version=03f906edc4cbe84e","html":"<div class=\"PCD_header\">\r\n                <div class=\"pf_wrap\" layout-shell=\"false\" node-type=\"cover_wrap\">\r\n                <div class=\"cover_wrap\" node-type=\"cover\"  style=\"background-

那么提取这种 html 有什么好的方法啊。 可怜我这种大过年还要写代码的大四狗。

3687 次点击
所在节点    程序员
14 条回复
leoleoasd
2019 年 2 月 6 日
webdrive 里能运行 js 但是有些网站(比如淘宝)会检测 webdriver
nlysh007
2019 年 2 月 6 日
直接 get ,然后匹配出 html 的部分就是了,有啥好说的...
hanzichi
2019 年 2 月 6 日
无头浏览器?
luozic
2019 年 2 月 6 日
最后情况直接上 selenium 把页面整个下载了
Sparetire
2019 年 2 月 7 日
puppeteer
NewConn
2019 年 2 月 7 日
插眼,我也想知道除了 web driver 和 selenium 之外的办法,总感觉这种假浏览器或者调用浏览器的方式太蠢了,不知道还有什么办法
kltt22
2019 年 2 月 7 日
执行 js
leoleoasd
2019 年 2 月 7 日
写个浏览器插件 socket 链接 python 接受控制
LukeChien
2019 年 2 月 8 日
关键词: chrome headless
lynskylate
2019 年 2 月 8 日
动态生成除了用 headless chrome 没什么太好的方法,说实话挺蠢的,每次读取完毕未必读取完毕,还得 wait 几秒。

如果有耐心的话,老实看下加密过的 js,https://beautifier.io/用这个美化下看,然后调 python 或者 java 的 u8 wrap 来执行这一段 js, 不能有网络和 dom 相关调用。
xe2vherd
2019 年 2 月 8 日
@leoleoasd 我只是想简单的提取一些 html...
ericgui
2019 年 2 月 8 日
我觉得你研究一下 fiddler,抓一下 api
XxxxD
2019 年 2 月 8 日
模拟登陆 or 找 api
tikazyq
2019 年 2 月 9 日
用 selenium 或 puppeteer

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

https://v2ex.ih06.com/t/533212

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

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

© 2021 V2EX