ebony0319
V2EX  ›  问与答

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

  •  
  •   ebony0319 · Apr 1, 2016 · 6923 views
    This topic created in 3867 days ago, the information mentioned may be changed or developed.

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

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

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

    啊如果付费明天我看下好了,正好这几天放假学生党赚点零花钱也不错 w
    horizon
    horizon
    Apr 1, 2016
    31
    @ebony0319 哈哈哈,今日最佳
    lazarus
    lazarus
    Apr 1, 2016
    32
    @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
    lazarus
    Apr 1, 2016
    33
    呃,代码缩进乱掉了
    ebony0319
    ebony0319
    OP
    Apr 1, 2016 via Android
    34
    @lazarus 厉害哇。
    ebony0319
    ebony0319
    OP
    Apr 1, 2016 via Android
    35
    @4679kun
    @horizon 那时候晚上十点样子,一个女司机跟他老公在沿江大道试新车,结果把自己给撞死了,老公为了防止后面的车来就去拦车,大货车拦不住直接就撞死了。不知道哪个智商低的把那种木粱横在路上拦车,我发现的时候已经只有三米了。煞不住了,直接飞出去了。后面接连发生了几十起车祸,第四位后脑勺直接消去四分之一。
    重点来了,深夜不要点图,不要点图,不要点图。当时的车祸拍照。 https://ssl.moefq.com/image/LqgCh
    ebony0319
    ebony0319
    OP
    Apr 1, 2016 via Android
    36
    @lazarus 我可不可以厚颜无耻的请求你直接把一万个 id 发给我哇。
    lazarus
    lazarus
    Apr 2, 2016❤️1
    37
    @ebony0319 不好意思,这个只是示意行的代码,还是很简陋,我刚刚跑了下发现 111 页往后的内容获取不到了,暂时没时间去深究了
    WhyLiam
    WhyLiam
    Apr 2, 2016
    38
    火车头,妥妥的
    wjfz
    wjfz
    Apr 2, 2016 via Android
    39
    @ebony0319
    卧槽,真事儿啊。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3502 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 00:07 · PVG 08:07 · LAX 16:07 · JFK 19:07
    ♥ Do have faith in what you're doing.