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
lichun
V2EX  ›  Python

问个 JavaScript 问题,在浏览器控制台抓取页面信息

  •  1
     
  •   lichun · 2015-07-31 19:56:24 +08:00 · 2836 次点击
    这是一个创建于 3396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://i.imgur.com/0YVuC4t.jpg
    Imgur
    <img src="http://i.imgur.com/0YVuC4t.jpg" title="source: imgur.com" />

    var doc = document.getElementsByClassName('item_title')
    
    for(var i = 0; i < doc.length; i++) {
        console.log(doc[i].textContent)
    }
    
    • 我想用浏览器的控制台执行JS获取V2EX的所有帖子title
    • 在当前页是没问题的,可是用JS点击翻页按钮载入下一页了,当前的会话不会保存,变量的值全丢了

    PS: 一直没怎么学过JS的,只是需要用到的时候去翻w3c


    http://i.imgur.com/0YVuC4t.jpg
    [Imgur](http://i.imgur.com/0YVuC4t.jpg)
    <img src="http://i.imgur.com/0YVuC4t.jpg" title="source: imgur.com" />
    

    各种格式都不能显示图片,我已经不会发图了。

    10 条回复    2015-08-02 12:30:33 +08:00
    SilentDepth
        1
    SilentDepth  
       2015-07-31 20:41:17 +08:00
    一翻页页面就刷新了,上下文也就刷新了,变量自然就没了。需要一个脱离当前页面的东西来抓取和储存数据,比如外部应用、浏览器插件,或者把数据存到Cookie等地方。
    jugelizi
        2
    jugelizi  
       2015-07-31 20:48:30 +08:00
    保存到localstorge
    iyangyuan
        3
    iyangyuan  
       2015-07-31 21:40:49 +08:00 via iPhone
    保存也没用,刷新的时候程序都没了,楼主的需求最好是用程序模拟http请求,不依赖浏览器,如果喜欢js,可以用nodejs
    lichun
        4
    lichun  
    OP
       2015-07-31 21:42:46 +08:00
    @iyangyuan 因为有些网站的登陆验证挺繁琐的!所以才没有用python来做
    bdbai
        5
    bdbai  
       2015-07-31 21:56:19 +08:00 via iPhone
    @lichun Cookie大法好
    geeti
        6
    geeti  
       2015-07-31 22:02:31 +08:00
    lz头像有品位!
    lichun
        7
    lichun  
    OP
       2015-07-31 22:12:52 +08:00
    @bdbai 哦哦, 猛然醒悟,直接把浏览器的cookie拿来用就好了
    iNaru
        8
    iNaru  
       2015-07-31 23:10:21 +08:00
    cookie长度有限制吧,不如直接ajax。
    iyangyuan
        9
    iyangyuan  
       2015-08-01 08:22:03 +08:00 via iPhone
    我一般是用c#的webbrowser解决登陆问题,直接在软件里搞个浏览器界面,手动登陆,然后程序控制浏览器,随心所欲:)
    xarrow
        10
    xarrow  
       2015-08-02 12:30:33 +08:00
    小的信息放在localStorage里面,如果抓取多的话,用node
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   982 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:44 · PVG 06:44 · LAX 14:44 · JFK 17:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.