V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
irgil
V2EX  ›  PHP

请教个大家个问题,页面之间传值怎么实现?

  •  
  •   irgil · 2013-12-07 23:16:19 +08:00 · 4039 次点击
    这是一个创建于 4003 天前的主题,其中的信息可能已经有所发展或是发生改变。
    学校内网的通知、新闻外网看不了。所以用爪机就看不了了。于是我想写个新闻抓取的代码,然后通过微信来查询。

    我想了个方法:
    1.在学校内网的服务器上(手里刚好能找到一台)部署抓取代码getnews.php。
    2.通过微信发请求给getnews.php。
    3.getnews.php接到请求,处理代码后返给微信接口
    4.微信再返给我的手机。

    问题是,我希望一次能把前50个新闻都抓取完,用post的话能实现么?会不会超过大小?
    16 条回复    1970-01-01 08:00:00 +08:00
    bombless
        1
    bombless  
       2013-12-07 23:21:20 +08:00
    没搞明白哪涉及页面间的传值了……
    irgil
        2
    irgil  
    OP
       2013-12-07 23:24:41 +08:00
    @bombless getnews.php传给 微信接口weixin.php
    bombless
        3
    bombless  
       2013-12-07 23:33:32 +08:00
    按我的理解,限制在set_time_limit那里……其他应该没有可以碰壁的地方
    kevinzhow
        4
    kevinzhow  
       2013-12-07 23:36:43 +08:00
    你直接用那台服务器做VPN不就完了。
    itommy
        5
    itommy  
       2013-12-07 23:39:13 +08:00 via iPhone
    应该先把 getnews.php 写出来

    你的问题就已经可以自己解决了
    irgil
        6
    irgil  
    OP
       2013-12-07 23:42:55 +08:00
    @kevinzhow 意思是说服务器做vpn后直接通过服务器访问么- -
    irgil
        7
    irgil  
    OP
       2013-12-07 23:49:14 +08:00
    @itommy getnews.php已经写出来了,但是只有连了内网才有用。所以我在想把getnews.php部署到内网里,通过微信发送请求给getnews.php然后查看。主要是想通过手机微信查看...所以才这么麻烦
    richiefans
        8
    richiefans  
       2013-12-07 23:59:20 +08:00
    换个思路 既然有内网爬虫 就定时把最新的通知和新闻 存到外网就好了啊~
    lijinma
        9
    lijinma  
       2013-12-08 00:01:55 +08:00
    @irgil 不知道是你把问题说复杂了。。还是。。

    既然微信可以访问到getnews.php,那你的意思就是getnews.php的服务器既可以访问外网也可以访问内网了;

    既然这样,你用getnews.php 抓取到新闻内容存成一个网页比如 news.html

    然后通过手机或者微信直接访问 news.html就可以了啊。。。

    别搞复杂。
    itommy
        10
    itommy  
       2013-12-08 00:16:26 +08:00
    @lijinma 说的是啊

    微信的服务器都能访问 getnews.php 了,就没什么不能访问 getnews.php 的了吧

    倒是该用 @richiefans 思路才对
    kevinzhow
        11
    kevinzhow  
       2013-12-08 02:05:30 +08:00
    @lijinma
    @itommy
    @irgil

    直接做成VPN Server,然后拨进来就内网想看什么看什么了。
    bombless
        12
    bombless  
       2013-12-08 03:16:17 +08:00
    你们真坏,都不回答楼主问题……

    其实我一开始看到帖子时想到的是内网打洞……
    但是貌似只有圆锥形NAT才有解
    breeswish
        13
    breeswish  
       2013-12-08 22:28:51 +08:00
    Part A) daemon:用nodejs/py吧,常驻后台定时抓取;或者php-cli,使用crontab定时抓取数据到数据库
    Part B) getnews.php 直接从数据库读取

    如果你用nodejs/py的话他们自己都有超时设置 设置为永远不超时也行,php-cli的话可以像3#那样解除30秒运行限制。

    我记得微信API对响应时间有要求的。。所以还是把耗时的任务作为bg service运行比较好。。
    loveminds
        14
    loveminds  
       2013-12-09 03:42:32 +08:00
    @kevinzhow 通过SSH通道做反向代理如何
    loveminds
        15
    loveminds  
       2013-12-09 03:43:20 +08:00
    @lijinma 这样更加简单,直接一个Nginx或者Varnish把内网反向代理出去就好了
    jarlyyn
        16
    jarlyyn  
       2013-12-09 14:10:15 +08:00
    数据源内网是rss还是啥?
    响应时间的话做个缓存就可以了吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1360 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:33 · PVG 01:33 · LAX 09:33 · JFK 12:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.