V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
liangmishi
V2EX  ›  Python

开始学 vue,尝试着用 requests.get() 去爬自己写的网页,然后什么都爬不到

  •  
  •   liangmishi · 2016-08-25 14:33:10 +08:00 · 7992 次点击
    这是一个创建于 3014 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这种情况各位大大是如何解决的?
    不用 selenium 等库,就用 requests 可有办法 ?
    22 条回复    2016-08-26 23:47:32 +08:00
    ljcarsenal
        1
    ljcarsenal  
       2016-08-25 14:36:52 +08:00
    你在页面上 ctrl+u 看到的是什么样的内容 爬虫爬到的就是什么样的内容
    eromoe
        2
    eromoe  
       2016-08-25 14:59:11 +08:00
    纯 js 网站就是这样啊,我记得好像可以用 pyv8 运行 js ,但是文档很不完善,基本就是坑
    liangmishi
        3
    liangmishi  
    OP
       2016-08-25 15:36:28 +08:00
    @ljcarsenal 确实如此

    @eromoe 那只能使用 selenium 之类的库了,但是效率很低
    chairuosen
        4
    chairuosen  
       2016-08-25 15:58:08 +08:00
    用 vue2.0 的 server-side renderer
    foomorrow
        5
    foomorrow  
       2016-08-25 16:45:01 +08:00
    phantomjs
    eromoe
        6
    eromoe  
       2016-08-25 16:57:17 +08:00
    @foomorrow
    纯 python 就是 selenium +webdriver(phantomjs), 要不还要学 phantomjs (虽然也不难,不过也有些坑)
    isbase
        7
    isbase  
       2016-08-25 17:00:52 +08:00   ❤️ 2
    推荐 nightmare
    iamsgg
        8
    iamsgg  
       2016-08-25 17:14:25 +08:00
    有的网站看来路,来路不对不返回内容。
    liangmishi
        9
    liangmishi  
    OP
       2016-08-25 18:47:13 +08:00
    @eromoe 学了一段时间 phantomjs ,感觉文档不多,学着累

    @isbase 感谢~
    @iamsgg 来路一般是看是否有 User-Agent 吧
    holajamc
        10
    holajamc  
       2016-08-25 19:44:30 +08:00
    可以试试 httplib2 ,我觉得这玩意儿就是 Python 下的 HTTP 请求的王者, Selenium+PhantomJS 的话效率惨不忍睹,但是十分方便,多线程呗~
    tumb8r
        11
    tumb8r  
       2016-08-25 19:56:20 +08:00
    ajax??不返回 json ?
    ericls
        12
    ericls  
       2016-08-25 22:38:45 +08:00 via iPhone
    直接爬接口不是更方便 直接 parse json
    pncltp
        13
    pncltp  
       2016-08-26 01:00:45 +08:00 via iPhone
    爬虫请用 scrapy 今天都说第二遍了。
    WildCat
        14
    WildCat  
       2016-08-26 05:04:56 +08:00
    @liangmishi nightmare 完爆 phantomjs
    csy123
        15
    csy123  
       2016-08-26 09:53:18 +08:00
    @pncltp scrapy 能爬全 js 的网站?
    pncltp
        16
    pncltp  
       2016-08-26 10:18:57 +08:00 via iPhone
    @csy123 这个 js 没有关系啊, http 无非就 get 和 post 。如果你说的是 json ,解析他的库实在太多。
    killerv
        17
    killerv  
       2016-08-26 17:42:31 +08:00
    这种调接口的更好爬吧,你要是解析页面当然是没有数据……
    liangmishi
        18
    liangmishi  
    OP
       2016-08-26 20:22:47 +08:00
    @holajamc 多线程的话也是内存可能会不够,所以这代价还是蛮大的

    @pncltp 这和用不用 scrapy 没关系吧?

    @tumb8r
    @ericls 如果有接口当然是用接口方便,有时候没有
    holajamc
        19
    holajamc  
       2016-08-26 20:42:56 +08:00 via Android
    不会太占内存,毕竟 Headless , 10 个线程绝对能够应付
    ericls
        20
    ericls  
       2016-08-26 23:26:04 +08:00
    @liangmishi 如果没有接口那数据哪里来的
    liangmishi
        21
    liangmishi  
    OP
       2016-08-26 23:39:18 +08:00
    @holajamc 改天试试~谢谢

    @ericls 假如有这样一个场景,我所访问的网页是返回了一段 js 代码,只有执行了这段代码才能知道跳转到哪里,那这时候只能去执行 js 代码了
    ericls
        22
    ericls  
       2016-08-26 23:47:32 +08:00
    @liangmishi 你也可以翻译这段代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3295 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:51 · PVG 20:51 · LAX 04:51 · JFK 07:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.