如何纯前端实现爬虫

2020-04-15 11:36:54 +08:00
 easylee1996

不通过后端的服务器,相当于用户每次访问网页,在前端爬取数据后,再上传到后端,每次使用用户的 ip 。 当然需要告之用户,类似做一个更新最新数据的按钮,用户自己点击,然后再爬取数据。

5429 次点击
所在节点    问与答
26 条回复
xiaoxinshiwo
2020-04-15 11:46:59 +08:00
你说的啥???
sun019
2020-04-15 11:50:57 +08:00
百度爬虫里面有个 自动提交的 js 功能,你可以参考下他怎么做的。
他的流程就是用户访问了该网页,然后就把网址提交了。后续爬虫定时再来爬。
lzdyes
2020-04-15 11:51:09 +08:00
浏览器跨域你的想法就被 kill 了
lshero
2020-04-15 11:51:27 +08:00
油猴写个脚本就搞定了啊
dcalsky
2020-04-15 11:51:41 +08:00
浏览器有跨域的限制,不会让你从这个页面发送 http 请求给其他页面的,除非人家开了针对你的 CORS (或者*),或者你 get 到了他的 jsonp 接口(但是没人会给 html 页面开 jsonp 吧)。所以理论上不行,除非你说的前端不是 web,而是其他客户端。
easylee1996
2020-04-15 11:52:50 +08:00
@xiaoxinshiwo 用前端 js 能不能爬取数据,不使用 python,java 这些
coderluan
2020-04-15 11:53:04 +08:00
最简单的办法是油猴脚本,比较折中的办法是浏览器插件,这些都能保证爬取的过程都是用户行为,单纯的网页肯定还得你提供服务,严格来说就不能算纯前端了。
hcwhan
2020-04-15 12:14:32 +08:00
@easylee1996 不能 具体原因请搜索 同源策略 跨域
tyx1703
2020-04-15 12:35:30 +08:00
用油🐵或者浏览器扩展吧
also24
2020-04-15 12:37:41 +08:00
需要先定义一下 『纯前端』指的是什么。

是说你自己搭建一个前端页面,然后去爬其它网站?

还是说你在其它人的页面上执行一段前端脚本(类似油猴、浏览器扩展),来实现对其它网站的抓取?
binbinyouliiii
2020-04-15 12:37:46 +08:00
浏览器:”不,你不想”
ic2y
2020-04-15 12:40:35 +08:00
使用浏览器扩展,是可以的。

一些比价插件,就会通过插件扩展机制,去扫描当前页面的 document,根据不同的网站 url,执行不同的采集策略。

采集到的数据,会通过 http 传送到后端,既能让用户帮助自己辅助数据抓取,也能满足用户更精准的比价需求 [爬当前页的商品基本文案,可以比价推荐类似的产品] 。
ljpCN
2020-04-15 12:42:00 +08:00
@easylee1996 puppeteer
C603H6r18Q1mSP9N
2020-04-15 12:58:37 +08:00
不行
azh7138m
2020-04-15 13:08:36 +08:00
就是省一个 ip 池的钱嘛

纯 Web 做不了,原因看 #5 dcalsky
xiaoxinshiwo
2020-04-15 13:44:55 +08:00
DOLLOR
2020-04-15 13:49:07 +08:00
用油猴子+Chrome/Firefox 可以,我自己都试过。
借助油猴子绕过跨域检测。
easylee1996
2020-04-15 13:50:50 +08:00
@azh7138m 对,除了省钱,主要是采集的东西及时性比较强,页面比较多,如果可以实现的话,用户看得都是最新的
endoffight
2020-04-15 14:13:34 +08:00
好实现,找一个只会前端小伙伴帮你写爬虫就行了
tabris17
2020-04-15 14:16:40 +08:00
1 、浏览器扩展
2 、Electron 自制浏览器

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

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

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

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

© 2021 V2EX