【问题标题】:How to read a asp.net page with BeautifulSoup?如何使用 BeautifulSoup 阅读 asp.net 页面?
【发布时间】:2015-08-25 22:45:08
【问题描述】:

我正在尝试使用漂亮的汤从网页中抓取一些数据。

当我尝试将 HTML 文档转换为 beautifulsoup 对象时遇到了问题。

当我运行代码时

soup = BeautifulSoup(html_doc)

我得到的错误信息是:

SyntaxError: Non-ASCII character '\xa9' in file      C:/Users/mlee/PycharmProjects/BsTest/htmlparse.py on line 683, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

我相信这是因为 html 中有一些 asp.net viewstate 对象是 base64 编码的。

是否有建议的解决方法,还是我必须使用其他工具?

另外,我主要只是对获取 javascript 生成的文本部分感兴趣。有更好的方法吗?

谢谢!

【问题讨论】:

    标签: python asp.net web web-scraping beautifulsoup


    【解决方案1】:

    放这个标题

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    

    htmlparse.py 文件的第一行,确保 PyCharm 将文件保存为 utf-8 编码。

    这与asp/viewstate 无关。文件中有 utf 字符。

    我主要只是对获取 javascript 生成的文本部分感兴趣。有更好的方法吗?

    您可能希望使用Selenium webdriver + python 绑定来完成任务。另一种选择是PhantomJS

    【讨论】:

    • 啊,谢谢,这就是解决方案。事实证明 get_text() 方法没有正确返回 javascript 生成的文本。从概念上讲,要检索 javascript 生成的文本需要做什么,beautifulsoup 是否能够做到这一点?干杯
    • @JesterKynes BeautifulSoup 据我所知不执行 Javascript。您需要查看执行 Javacript 的库或使用一些与 python 绑定的无头浏览器引擎。查看 PhantomJS、CasperJS 和 Selenium。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多