首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
Coding
V2EX  ›  Python

使用 beautifulsoup 解析网页非常的慢,有什么同类产品可以替代么?

  •  
  •   halfcrazy · 2014-04-28 13:37:03 +08:00 · 12446 次点击
    这是一个创建于 2057 天前的主题,其中的信息可能已经有所发展或是发生改变。
    另 如果单纯用正则匹配的话,效率如何?
    26 回复  |  直到 2014-05-06 16:11:27 +08:00
        1
    for4   2014-04-28 13:40:01 +08:00
        2
    halfcrazy   2014-04-28 13:49:25 +08:00
    @for4 如果性能能相差十倍,确实很诱人,这就试试去
        3
    qonco   2014-04-28 13:51:22 +08:00
    jsoup
        4
    qonco   2014-04-28 13:51:48 +08:00
    正则不是用来匹配html的
        5
    Ever   2014-04-28 13:56:30 +08:00
    @halfcrazy 美丽汤指定第二个参数为lxml就能走lxml parser, 不用重写。
        6
    halfcrazy   2014-04-28 13:56:57 +08:00
    @qonco jsoup是java的啊,另我的意思是只用正则来解析网页提取内容。
        7
    halfcrazy   2014-04-28 14:02:15 +08:00
    @Ever 是这样么? soup = BeautifulSoup(page,"lxml")
        8
    halfcrazy   2014-04-28 14:09:41 +08:00
    @Ever 用了这个lxml’s HTML parser效果似乎不是很明显啊
        9
    bilipan   2014-04-28 15:48:20 +08:00
    pyquery可以试下,语法跟jquery类似
        10
    binux   2014-04-28 15:51:04 +08:00
    正则比xml建树快得多,直接用xpath,比soup,pyquery快。
    即便如此,lxml单进程每秒30个页面还是没问题的。加大并发就好了。
        11
    flyer103   2014-04-28 16:31:33 +08:00 via Android
    @binux 想问下 “lxml单进程每秒30个页面还是没问题的” 是如何测出来的,平均获取单个页面中的数据条目有多少?
        12
    binux   2014-04-28 16:35:01 +08:00
    @flyer103 timeit,每个页面80条xpath规则
        13
    andyhu   2014-04-28 16:44:22 +08:00
    可以不用python吗?nodejs+cheerio非常爽,完全jquery的语法解析,速度也很快
        14
    kxxoling   2014-04-28 17:41:22 +08:00 via iPad
    bs有坑啊!lxml!
        15
    187j3x1   2014-04-28 17:46:35 +08:00
    匹配一堆相同内容 正则舒服很多 能正则就正则
        16
    dreasky   2014-04-28 17:55:49 +08:00
    亲测正则的速度快最灵活
        17
    a2z   2014-04-28 18:17:35 +08:00
    bs4
        18
    tomnee   2014-04-28 18:38:45 +08:00
    pyquery, 套的lxml, 性能比bs好,用起来比较简单。
        19
    daiv   2014-04-28 18:51:54 +08:00
    pyquery,用起来还是很舒服的
        20
    walleL   2014-04-28 19:38:57 +08:00   ♥ 2


    不知道大家有没有注意过这个功能, 很赞啊
        21
    okidogi   2014-04-28 23:36:25 +08:00
    beautifulsoup4 使用的就是lxml的库,应该会快一些。

    pip install beautifulsoup4
        22
    halfcrazy   2014-04-28 23:54:33 +08:00
    @okidogi 默认用的是html.parser吧 ,lxml好像要手动指定
        23
    chevalier   2014-04-29 00:10:52 +08:00
    @walleL 一直在用,写爬虫XPath解析网页必备
        24
    orancho   2014-04-29 08:36:57 +08:00 via Android
    nokigiri
        25
    Ever   2014-04-29 11:47:12 +08:00
    @halfcrazy 是不是单个文档过大? 数量大试试开线程池解决, lxml会释放GIL, 能有效利用多核。
        26
    remnet   2014-05-06 16:11:27 +08:00
    beautifulsoup 用过 感觉的确挺慢的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2385 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 34ms · UTC 12:38 · PVG 20:38 · LAX 04:38 · JFK 07:38
    ♥ Do have faith in what you're doing.