Python lxml 屏幕抓取?

标签 python html parsing screen-scraping lxml

我需要用 python 做一些 HTML 解析。经过一些研究后,lxml 似乎是我最好的选择,但我很难找到可以帮助我完成我正在尝试做的事情的例子。这就是我听到的原因。我需要为所有可查看的文本抓取一个页面。去除所有标签和 javascript 。我需要它给我留下可查看的文本。听起来很简单..我用 HTMLParser 做到了,但它不能很好地处理 javascript

class HTML2Text(HTMLParser.HTMLParser):
    def __init__(self):
        HTMLParser.HTMLParser.__init__(self)
        self.output = cStringIO.StringIO()

    def get_text(self):
        return self.output.getvalue()

    def handle_data(self, data):
        self.output.write(data)

def ParseHTML(source):
    p = HTML2Text()
    p.feed(source)
    text = p.get_text()
    return text

任何有关使用 lxml 或更好的方法来执行此操作的想法 HTMLParser..HTMLParser 最好,因为不需要额外的库..谢谢大家

斯科特·F.

最佳答案

我所知道的屏幕抓取库中没有“与 Javascript 配合得很好”——很难预测 JS 可以动态、有条件地改变 HTML DOM 的所有方式。

关于Python lxml 屏幕抓取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/814227/

相关文章:

html - 为什么插入符号在某些网站上显得更粗?

jquery - 使用 jQuery 访问父 div 的图像元素

swift - 从 Xcode 项目中删除 SwiftyJSON 框架/cocoapod

java - 解析 JSON 对象但遇到 NullPointerException

python - 将 python 脚本作为 systemd 服务运行

python - 如何将 tkinter Canvas 滚动到绝对位置?

jquery - 100% 宽度的侧导航面板未展开

python - 2002, "Can' t 通过 socket '/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)"in docker-compose up

python - 更新的词典列表

Javascript 将字符串转换为对象数组