不通过后端的服务器,相当于用户每次访问网页,在前端爬取数据后,再上传到后端,每次使用用户的 ip 。 当然需要告之用户,类似做一个更新最新数据的按钮,用户自己点击,然后再爬取数据。
不通过后端的服务器,相当于用户每次访问网页,在前端爬取数据后,再上传到后端,每次使用用户的 ip 。 当然需要告之用户,类似做一个更新最新数据的按钮,用户自己点击,然后再爬取数据。
|
1
你说的啥???
|
|
sun019Apr 15, 2020
2
百度爬虫里面有个 自动提交的 js 功能,你可以参考下他怎么做的。
他的流程就是用户访问了该网页,然后就把网址提交了。后续爬虫定时再来爬。 |
|
lzdyesApr 15, 2020
3
浏览器跨域你的想法就被 kill 了
|
|
lsheroApr 15, 2020
4
油猴写个脚本就搞定了啊
|
|
5
浏览器有跨域的限制,不会让你从这个页面发送 http 请求给其他页面的,除非人家开了针对你的 CORS (或者*),或者你 get 到了他的 jsonp 接口(但是没人会给 html 页面开 jsonp 吧)。所以理论上不行,除非你说的前端不是 web,而是其他客户端。
|
|
6
@xiaoxinshiwo 用前端 js 能不能爬取数据,不使用 python,java 这些
|
|
coderluanApr 15, 2020
7
最简单的办法是油猴脚本,比较折中的办法是浏览器插件,这些都能保证爬取的过程都是用户行为,单纯的网页肯定还得你提供服务,严格来说就不能算纯前端了。
|
|
hcwhanApr 15, 2020 via Android
8
@easylee1996 不能 具体原因请搜索 同源策略 跨域
|
|
unsizedApr 15, 2020 via iPhone
9
用油🐵或者浏览器扩展吧
|
|
also24Apr 15, 2020
10
需要先定义一下 『纯前端』指的是什么。
是说你自己搭建一个前端页面,然后去爬其它网站? 还是说你在其它人的页面上执行一段前端脚本(类似油猴、浏览器扩展),来实现对其它网站的抓取? |
|
binbinyouliiiiApr 15, 2020 via Android
11
浏览器:”不,你不想”
|
|
ic2yApr 15, 2020
12
使用浏览器扩展,是可以的。
一些比价插件,就会通过插件扩展机制,去扫描当前页面的 document,根据不同的网站 url,执行不同的采集策略。 采集到的数据,会通过 http 传送到后端,既能让用户帮助自己辅助数据抓取,也能满足用户更精准的比价需求 [爬当前页的商品基本文案,可以比价推荐类似的产品] 。 |
|
ljpCNApr 15, 2020 via Android
13
@easylee1996 puppeteer
|
|
C603H6r18Q1mSP9NApr 15, 2020
14
不行
|
|
azh7138mApr 15, 2020 via Android
15
就是省一个 ip 池的钱嘛
纯 Web 做不了,原因看 #5 dcalsky |
|
xiaoxinshiwoApr 15, 2020
16
|
|
AV1Apr 15, 2020
17
用油猴子+Chrome/Firefox 可以,我自己都试过。
借助油猴子绕过跨域检测。 |
|
18
@azh7138m 对,除了省钱,主要是采集的东西及时性比较强,页面比较多,如果可以实现的话,用户看得都是最新的
|
|
endoffightApr 15, 2020 via Android
19
好实现,找一个只会前端小伙伴帮你写爬虫就行了
|
|
tabris17Apr 15, 2020
20
1 、浏览器扩展
2 、Electron 自制浏览器 |
|
ajaxfunctionApr 15, 2020
21
先搞清楚这个爬虫是你自己用 还是给用户用
要是你自己用咋也好说,浏览器插件 扩展 脚本都行 如果是给用户用,那么浏览器就限制死了,无法发起跨域操作,你总不能让用户去安装 扩展 脚本这些吧? |
|
22
|
|
23
|
|
TinkApr 15, 2020 via iPhone
24
你跨域了
|
|
GBdG6clg2Jy17ua5Apr 15, 2020 via iPhone
26
浏览器是不行的。安卓,ios 这些 app 是可以做到的
|