
1 dji38838c 2019-10-13 15:37:23 +08:00 怎么可能嘛。你不访问 api,api 又不会自己发信息给你。 |
2 vus520 2019-10-13 15:38:02 +08:00 可以只读头信息,如果头信息里有页面变化的相关值,就可以省流量。 |
4 lihongjie0209 2019-10-13 15:42:38 +08:00 @vus520 #2 api 又不是静态文件, 使用 head 方法没有任何意义 |
5 lihongjie0209 2019-10-13 15:44:29 +08:00 可以啊, 你可以写一套复杂到调度策略, 根据统计信息经过一系列逻辑判断来决定你到请求频率和请求时间。 当然, 在 99%的情况下, 你的时间估计比流量值钱 |
6 malusama 2019-10-13 15:55:00 +08:00 这点流量算个球啊。。 |
7 reus 2019-10-13 15:55:43 +08:00 给钱让网站再更新的时候,给你发微信啊 |
8 airyland 2019-10-13 15:57:14 +08:00 付费让对方接口实现变化时 webhook 通知。 |
9 ClericPy 2019-10-13 16:08:53 +08:00 监听网页了都, 还不让访问么, 访问 http 就算爬虫了吧, 前段时间刚好追剧和追一拳超人漫画, 随手用写了个简单的爬虫后台, 主要目的就是把定位变化位置的部分用常规解析器+普通字符串来定位, css/Xpath/regex/Jsonpath 等等, 但是对你这种情况, 还是爬虫简单点啊, 你说的占内存费流量, 费流量看对方是否有 gzip, 不然只能通过 headers 判断了. 至于占内存, 我随手弄的协程爬虫百并发也没用多少内存, 你是不是姿势有问题, 不过高并发下 cpu 飙起来是挺正常的 |
10 michaelym OP |
11 cyrbuzz 2019-10-13 16:12:47 +08:00 xss 插入 js。 |
12 redeemer1001 2019-10-13 16:18:21 +08:00 @cyrbuzz 这是杀鸡用牛刀啊[哭笑] |
14 ClericPy 2019-10-13 16:45:14 +08:00 @michaelym 所以没有任何实例, 场景, 靠猜怎么猜啊, 稍微像个 PM 一样提问题会省很多时间, 划水的时间也很宝贵的 1. 100 网页什么样的, 能提供什么例子 2. 100 网页或 api 是自己家的还是别人家的, 是同域名的还是很多域名的 3. 100 网页是有没有内网接口 4. 理想状态的多少访问频率不算敲打服务器, 5 秒 100 次是打到同一个服务器上吗, 每秒 20 次对于一般服务器来说不至于 DOS 但可能会触发防火墙封掉 IP 5. 就流量来说要尽可能少还是说节省 IO 开销就好 6. 这些网站有没有修改权限的, 或者联系到对方开发者留个观察者目标 7. 实时性要求就是严格 5 秒吗 |
15 densuc 2019-10-13 17:22:30 +08:00 了解一下 huginn ? |
16 cyrbuzz 2019-10-13 18:19:45 +08:00 @redeemer1001 23333,真找到了很省事。 |
17 iamxiaoq 2019-10-13 21:12:45 +08:00 via Android 网页还是 api ?哪种网页?支持 head 方法? |
18 SingeeKing PRO 楼主需要的应该不是包而是服务吧,毕竟如果要求本地不请求还能知道网页变没变只有外部主动通知才可能 可以考虑 https://versionista.com/ https://fluxguard.com/ https://www.sken.io/ |
19 forgottencoast 2019-10-13 21:27:56 +08:00 @lihongjie0209 HEAD 在实现良好的 RESTful 风格 Api 里面是很有用的。 |
20 lihongjie0209 2019-10-13 21:42:02 +08:00 @forgottencoast #19 1. 按照楼主的提问, 那么肯定是从 http 协议层面考虑, 至于 api 是不是 rest 风格的,没法确定, 没法保证, 没法修改。 2. 其次, 我是没看懂为什么一个动态资源( api )需要实现 head 方法。 按照 mdn 和 rfc2616 的说法,head 方法就是一个 get 方法不返回 body, 主要到作用也是解决带宽和缓存处理。 `实现良好的 RESTful 风格 Api ` 可有任何实际的项目在使用?麻烦发一下 github 地址。 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/HEAD ``` HTTP HEAD 方法 请求资源的头部信息, 并且这些头部与 HTTP GET 方法请求时返回的一致. 该请求方法的一个使用场景是在下载一个大文件前先获取其大小再决定是否要下载, 以此可以节约带宽资源. ``` rfc2616 ``` 9.4 HEAD The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the information sent in response to a GET request. This method can be used for obtaining metainformation about the entity implied by the request without transferring the entity-body itself. This method is often used for testing hypertext links for validity, accessibility, and recent modification. The response to a HEAD request MAY be cacheable in the sense that the information contained in the response MAY be used to update a previously cached entity from that resource. If the new field values indicate that the cached entity differs from the current entity (as would be indicated by a change in Content-Length, Content-MD5, ETag or Last-Modified), then the cache MUST treat the cache entry as stale. ``` |
21 1daydayde 2019-10-13 22:08:00 +08:00 你要的是不是 Etag 或者 Last-Modified ? |
22 xiangyuecn 2019-10-13 23:20:23 +08:00 占内存就像是一个笑话。。。感觉你是在提前优化 阔怕 如果确实发百来个请求就占用了大量内存(写了什么代码),实在要优化,花 100 块买根 1G 的条子加上去难道不香吗,实在不行买 128G 的也行 量多占用太多流量这个看楼主#13 说的似乎很难优化,不过量多往往代表着普普通通很长时间不太可能变化,意思就是代表着时效性没有想象的这么高,给这些按重要性分一下级,90%不重要的也许 5 秒改成 500 秒就好了,来 1000 个改成 5000 秒,以此类推 |
23 ty89 2019-10-14 10:17:22 +08:00 爬虫是放在在非洲用 2G 上网的,流量这么金贵 |
24 cominghome 2019-10-14 12:19:29 +08:00 “但是自己写的每隔 5 秒访问 api 有点耗流量和占内存”被你爬的公司还没说话呢... 2333 |
25 ztcaoll222 2019-10-14 12:53:51 +08:00 "有点耗流量和占内存", 你是用手机跑爬虫的吗 |
26 imaimin 2019-10-14 15:51:18 +08:00 楼主这应该是在监听 KJ 结果 |