V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ebony0319
V2EX  ›  问与答

老板叫我人肉手工爬新浪微博

  •  
  •   ebony0319 · 2016-04-01 11:58:44 +08:00 · 5662 次点击
    这是一个创建于 3159 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://weibo.com/p/1001018008644010000000000/checkin?page=4#Pl_Core_F4RightUserList__34 这个网址,显示的是在在广州这里签到过的人。老板想一个个把名字复制下来。我不知道怎么爬。只是找到把网页源代码复制下来然后用正则表达式选出来。但是一次性只能选 10 个人,效率好低啊。谁知道怎么解放双手么?

    39 条回复    2016-04-02 01:57:33 +08:00
    chens
        1
    chens  
       2016-04-01 12:05:43 +08:00
    运的一手好营~
    ioriwong
        2
    ioriwong  
       2016-04-01 12:07:27 +08:00 via Android
    我建议慢慢手工爬,这么爽拿工资的方式,实在难得
    zymmm2
        3
    zymmm2  
       2016-04-01 12:08:41 +08:00 via iPhone
    herozzm
        4
    herozzm  
       2016-04-01 12:10:45 +08:00
    请问你的职位称呼?
    zythum
        5
    zythum  
       2016-04-01 12:11:34 +08:00
    网页源代码复制 表达式选出来 10 个人。 你把这步骤写成自动化的不就好了....
    royzheng
        7
    royzheng  
       2016-04-01 12:36:24 +08:00
    找个下载器 批量下载页面下来 再分析正则 done
    ebony0319
        8
    ebony0319  
    OP
       2016-04-01 12:54:26 +08:00 via Android
    @herozzm 严格来说,这是运营的工作,但是现在运营走了。只能抓我当壮丁。
    ebony0319
        9
    ebony0319  
    OP
       2016-04-01 13:31:18 +08:00
    @icedx 这是什么是啊。点进去什么都没有
    kliy
        10
    kliy  
       2016-04-01 13:35:45 +08:00
    @ebony0319 审核一下网页
    xjchenhao
        11
    xjchenhao  
       2016-04-01 13:40:18 +08:00
    我用 node 爬过类似的, 你会 node 吗?
    Tuccuay
        12
    Tuccuay  
       2016-04-01 13:40:48 +08:00   ❤️ 2
    http://open.weibo.com/wiki/2/place/pois/users

    明明有接口为什么大家都想着去抓呢....这是为什么呢....
    marcolee
        13
    marcolee  
       2016-04-01 14:00:12 +08:00
    不能直接爬,要先拿到 cookie ,请求时要带上 cookie 。因为他的 html 都是用 js 来生成的,所以要用 phantomjs 来解析。
    ebony0319
        14
    ebony0319  
    OP
       2016-04-01 14:02:07 +08:00
    @Tuccuay 已经提交,再等待审核,现在有更快的方法么?
    Tuccuay
        15
    Tuccuay  
       2016-04-01 14:17:29 +08:00
    @ebony0319 你自己用不需要审核的....直接创建出来就能用....
    wubotao
        16
    wubotao  
       2016-04-01 14:41:09 +08:00
    用 Python 爬一下网页不可以么,就是把手工的过程改成自动了。
    icedx
        17
    icedx  
       2016-04-01 15:11:49 +08:00
    @ebony0319
    看不见咩? 那就是你没有灵根咯
    thinkmore
        18
    thinkmore  
       2016-04-01 15:25:43 +08:00
    正则没写好
    ebony0319
        19
    ebony0319  
    OP
       2016-04-01 15:48:49 +08:00 via Android
    @icedx 我看到你的东西了,主要是有这么多,就是几千页都信息怎么自动保持下来。
    vidli2ex
        20
    vidli2ex  
       2016-04-01 17:18:41 +08:00
    愿意付费的话,私信我。
    prccn
        21
    prccn  
       2016-04-01 18:14:48 +08:00
    叫老板开双份薪水:运营 + 爬手
    xshf12345
        22
    xshf12345  
       2016-04-01 18:24:02 +08:00
    python 写
    FUCKEX2
        23
    FUCKEX2  
       2016-04-01 18:26:25 +08:00
    愿意付费的话,私信我。 C++写~ so easy
    lazarus
        24
    lazarus  
       2016-04-01 18:33:39 +08:00
    LZ 不是码农?
    python 写个脚本简直分分钟啊
    ebony0319
        25
    ebony0319  
    OP
       2016-04-01 18:47:45 +08:00 via Android
    @vidli2ex
    @FUCKEX2
    @lazarus 可以哟,报价吧。
    popok
        26
    popok  
       2016-04-01 20:53:32 +08:00
    @Tuccuay 大概看了下,这个广州好像是类似一个分类的大目录,没有具体的 poiid 的,这个 API 只能通过具体的 poiid 获取签到的列表,而且有频率限制。
    虽然 api 方便简单,但是这里直接爬页面其实也不错的
    binux
        27
    binux  
       2016-04-01 21:05:13 +08:00
    既然老板让你手动抓的,他还付你工资。。。
    那你就一天写个自动的,然后说我一个月都在手动抓
    ebony0319
        28
    ebony0319  
    OP
       2016-04-01 21:44:20 +08:00 via Android   ❤️ 1
    @lazarus 在去年出车祸之前我还会 c , c++, lua , JAVA ……然后什么都很模糊了,记忆一些东西很困难。但是现在还是能够看得懂一些你们写的东西,谈论的一些话题。
    4679kun
        29
    4679kun  
       2016-04-01 22:09:13 +08:00
    @ebony0319 神转进(´゚Д゚`)
    techmoe
        30
    techmoe  
       2016-04-01 22:40:55 +08:00
    python 应该分分钟解决

    啊如果付费明天我看下好了,正好这几天放假学生党赚点零花钱也不错 w
    horizon
        31
    horizon  
       2016-04-01 23:06:02 +08:00
    @ebony0319 哈哈哈,今日最佳
    lazarus
        32
    lazarus  
       2016-04-01 23:17:17 +08:00
    @ebony0319 粗略写了下,需要把里面的 YOUR_COOKIE 替换成你的 cookie :
    ##################################
    import requests, re, time

    headers={
    'Cookie': YOUR_COOKIE
    }
    base_url = 'http://weibo.com/p/1001018008644010000000000/checkin?page=%s'


    def append_to_file(text, filename):
    with open(filename, 'a') as f:
    f.write(text)


    def get_page(page):
    r = requests.get(base_url % page, headers=headers)
    print r.text.encode('utf-8')
    return '\n'.join([x.encode('utf-8') for x in re.findall('<strong usercard=\\\\"[^"]+" >([^<]+)<\\\\/strong>', r.text)])


    sleep_interval = 5
    for p in xrange(1, 35612):
    nicks = get_page(p)
    retry_count = 0
    while len(nicks) == 0:
    retry_count += 1
    time.sleep(retry_count * sleep_interval)
    nicks = get_page(p)
    append_to_file(nicks, 'data/nicks.txt')

    ##################################

    weibo 有限流措施,懒得去研究怎么突破了,就用了最简单的 sleep + retry ,就放着慢慢跑就是了
    如果需要我来帮你跑,回复我吧
    lazarus
        33
    lazarus  
       2016-04-01 23:18:03 +08:00
    呃,代码缩进乱掉了
    ebony0319
        34
    ebony0319  
    OP
       2016-04-01 23:33:31 +08:00 via Android
    @lazarus 厉害哇。
    ebony0319
        35
    ebony0319  
    OP
       2016-04-01 23:39:31 +08:00 via Android
    @4679kun
    @horizon 那时候晚上十点样子,一个女司机跟他老公在沿江大道试新车,结果把自己给撞死了,老公为了防止后面的车来就去拦车,大货车拦不住直接就撞死了。不知道哪个智商低的把那种木粱横在路上拦车,我发现的时候已经只有三米了。煞不住了,直接飞出去了。后面接连发生了几十起车祸,第四位后脑勺直接消去四分之一。
    重点来了,深夜不要点图,不要点图,不要点图。当时的车祸拍照。 https://ssl.moefq.com/image/LqgCh
    ebony0319
        36
    ebony0319  
    OP
       2016-04-01 23:43:11 +08:00 via Android
    @lazarus 我可不可以厚颜无耻的请求你直接把一万个 id 发给我哇。
    lazarus
        37
    lazarus  
       2016-04-02 00:02:52 +08:00   ❤️ 1
    @ebony0319 不好意思,这个只是示意行的代码,还是很简陋,我刚刚跑了下发现 111 页往后的内容获取不到了,暂时没时间去深究了
    WhyLiam
        38
    WhyLiam  
       2016-04-02 01:49:28 +08:00
    火车头,妥妥的
    wjfz
        39
    wjfz  
       2016-04-02 01:57:33 +08:00 via Android
    @ebony0319
    卧槽,真事儿啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2645 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 05:55 · PVG 13:55 · LAX 21:55 · JFK 00:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.