V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

求助!网页爬虫遇到了非转义的小于号怎么解决

  •  
  •   8cbx · 38 天前 · 478 次点击
    这是一个创建于 38 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题:

    我尝试利用 pyspider 框架爬一个网站,在脚本用 pyquery 处理一个页面,但是这个页面中有 n 多个小于号,还是非转义过的小于号……在用 pyquery 处理的时候就会造成整个标签的混乱闭合。举个例子:

    <p>0<=a,b<=10</p><p class="pst">Output</p>
    

    我想提取 0<=a,b<=10 这一部分,后面的 Output 我不想要,但是用 pyquery 一处理后就出问题了……提取内容的时候总是少内容或者多内容

    页面的源地址是: http://poj.org/problem?id=1000

    我主要想提取页面中的主要内容,如 description、input、output 等内容,但是基本每个页面都会遇到这个小于号的问题

    想请教各路大神这种情况应该如何处理啊?

    多谢帮助!


    我想过用正则先把小于号替换掉,但是貌似情况可能有点多,仅仅在我看过的很有限的页面中就出现过<<这种情况。现在已知会出现'< ', '<=', '<<', '<'这四种情况

    第 1 条附言  ·  38 天前
    找到问题了…… lxml 版本太低……

    多谢大家的帮助!!!
    3 回复  |  直到 2017-05-19 16:06:04 +08:00
        1
    aploium   38 天前
    chrome 能正常处理...(chrome 的开发者太屌了)
    一个保底的办法: chrome 外面挂一层 selenium, 让 chrome 去解析
        2
    mansur   38 天前
    import re
        3
    twein   38 天前
    >>> from pyquery import PyQuery as pq
    >>> a = '''<p>0<=a,b<=10</p><p class="pst">Output</p>'''
    >>> doc = pq(a)
    >>> doc('p').eq(0).text()
    '0<=a,b<=10'
    >>>
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1052 人在线   最高记录 2607   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 37ms · UTC 00:09 · PVG 08:09 · LAX 17:09 · JFK 20:09
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1