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

网页内容是用 json 动态生成的,需要怎么爬取?

  •  
  •   ljcarsenal · 2014-10-30 16:20:31 +08:00 · 6138 次点击
    这是一个创建于 3661 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用的是scrapy。根据url爬取的是这个网站的整体框架,然后内容是根据json动态生成的。如果直接请求json的url,会报 非法请求的错误。这种情况下应该怎么爬取?
    10 条回复    2014-10-31 09:00:07 +08:00
    cdxem713
        1
    cdxem713  
       2014-10-30 16:54:10 +08:00
    json的url是不是有post的数据?
    ljcarsenal
        2
    ljcarsenal  
    OP
       2014-10-30 17:07:11 +08:00
    @cdxem713 现在知道原因了。。请求json时,http的header referer 要和那个框架的url相同。。现在问题来了,怎么动态设置header。。
    xunyu
        3
    xunyu  
       2014-10-30 17:12:37 +08:00
    呵呵,scrapy+ghost.py
    cdxem713
        4
    cdxem713  
       2014-10-30 17:16:59 +08:00
    @ljcarsenal 没用过scrapy不知道呢,一般都可以设置header的吧,形式一般是key-value pair那样的,设置成这个网站的首页地址试试。
    fxbird
        5
    fxbird  
       2014-10-30 21:15:42 +08:00
    用phantomjs试试,它可以获得页面源代码,并且可以用js来操作dom,我也是刚学,用它把post改成get提交一个表单,总是跳到另外一个页
    14
        6
    14  
       2014-10-30 22:48:33 +08:00
    json多好啊,都不需要自己结构化数据了……
    pynix
        7
    pynix  
       2014-10-30 22:59:58 +08:00
    urllib都可以设置的嘛。。
    GeekGao
        8
    GeekGao  
       2014-10-31 00:24:07 +08:00
    "会报 非法请求的错误" 多半是因为你没加该加的header啊
    konakona
        9
    konakona  
       2014-10-31 06:24:55 +08:00
    把網頁show出來大夥一看不就明白了
    zhyu
        10
    zhyu  
       2014-10-31 09:00:07 +08:00
    用phantomjs
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2463 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:00 · PVG 00:00 · LAX 08:00 · JFK 11:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.