wslsq
V2EX  ›  PHP

请教大家关于 php 爬取内容的问题~

  •  
  •   wslsq · Sep 18, 2016 · 2652 views
    This topic created in 3534 days ago, the information mentioned may be changed or developed.
    我有个项目需要每十秒爬取一个内容,不能手动刷新, php 好像没有定时功能的吧!?

    我朋友说用长链接可以,然后我去了解了一下长链接。

    看了一下,长链接好像是用来搞通讯的吧。。长链接爬取可以吗?

    还请各位大神指点一二,谢谢~
    11 replies    2016-09-20 11:19:26 +08:00
    nigelvon
        1
    nigelvon  
       Sep 18, 2016
    定时? crontab 或者 sleep+while(true) 都行
    ic2y
        2
    ic2y  
       Sep 18, 2016
    crontab 。设定为每 1 分钟启动一次脚本,然后, while 循环 6 次。每次开始爬的时候,记下 start_time ,爬完,记下 end_time,然后 sleep(10-(end_time - start_time))
    initpub
        3
    initpub  
       Sep 18, 2016
    楼上说得对: crontab + sleep 是可以搞定的,而且最简单。

    你的朋友也没错,长链接也行。就是“ keep-alive ”啦,但是这个复杂点,没有必要。优点是速度快一些。
    jerryjee
        4
    jerryjee  
       Sep 18, 2016
    crontab 定期执行 PHP 脚本最简单
    bombless
        5
    bombless  
       Sep 18, 2016
    也不一定 crontab ,你就 nohup 让一个 PHP 脚本一直跑就好,每次 sleep 十秒
    wslsq
        6
    wslsq  
    OP
       Sep 18, 2016
    @bombless
    @jerryjee
    @initpub
    @ic2y
    @nigelvon
    谢谢大家,定时我懂得,只是希望有长链接之类更优方法。谢谢了。
    initpub
        7
    initpub  
       Sep 18, 2016
    @wslsq 我晕,你对时间的要求是“每十秒爬取一个内容”——根本不需要“更优方法”哦。
    dawniii
        8
    dawniii  
       Sep 18, 2016
    不清楚具体需求是啥样。
    我理解为 你有一个页面 页面的某些内容需要每十秒 从别的地方抓过来?
    方案 1 : js 定时 ajax 去请求你的 php 程序拿数据就 OK 了
    方案 2 : php 建立 websocket server 。浏览器建立长连接, js 定时发请求拿数据。
    如果你的需求只是定时抓内容, php 脚本直接循环 sleep(10)就 OK 了
    wslsq
        9
    wslsq  
    OP
       Sep 19, 2016
    @dawniii 感谢~
    可能是我说的不明白~
    自动刷新的问题已经解决了
    主要是想用长连接爬取,因为长链接不会产生多次请求。多次请求怕会被封。
    zktz
        10
    zktz  
       Sep 20, 2016 via Android
    长连接不是你说的这个层面的事吧。你每隔 10 秒取一次数据,你对目标每隔 10 秒重新读取一次,对方就能记录一次,该封一样封。
    wslsq
        11
    wslsq  
    OP
       Sep 20, 2016
    @zktz 谢谢。我的确对长链接不懂。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2767 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 10:18 · PVG 18:18 · LAX 03:18 · JFK 06:18
    ♥ Do have faith in what you're doing.