python - 屏幕抓取时处理 javascript 重页面的选项

标签 python screen-scraping

此处免责声明:我真的不是程序员。我很想学习,但我的经验是 20 年前的 c64 基础知识和几天的 Python 学习经验。

我刚刚开始一个相当大的(对我这个初学者来说)屏幕抓取项目。到目前为止,我一直在使用 python 和 mechanize+lxml 进行浏览/解析。现在我遇到了一些非常重的 javascript 页面,在没有启用 javascript 的情况下不显示任何内容,这意味着机械化的麻烦。

根据我的搜索,我得出的结论是我基本上有几个选择:

  1. 试图弄清楚 javascript 在我的代码中做了什么模拟(我不太清楚从哪里开始。;-))

  2. 使用 pywin32 来控制 internet explorer 或类似的东西,例如使用 pyqt4 的 webkit-browser 甚至使用 telnet 和 mozrepl(这似乎很难)

  3. 由于 www::Mechanize 在 per 上似乎更加成熟(javascript 的插件等),因此将语言切换为 perl。对这个根本就不知道太多。

如果有人在这里有一些指示,那就太好了。我知道我需要做很多试验和错误,但如果有这样的事情,我不会离“真实”答案太远。

最佳答案

您或许可以在其他地方找到您正在寻找的数据。尝试使用 firefox 中的网络开发人员工具栏来查看 javascript 正在加载的内容。可能是你可以在js文件中找到数据。

否则,您可能确实需要使用 Mechanize。您可能会发现这里有两个有用的教程:

http://scraperwiki.com/help/tutorials/python/

关于python - 屏幕抓取时处理 javascript 重页面的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929005/

相关文章:

python - 使用 Python 而不是 HTML 从网站中提取链接

ruby - 如何阻止来自 Ruby Mechanize Gem 的访问?

python - 存储/检索 python 数据的首选方式

python - python有原子CompareAndSet操作吗?

ruby - 使用 Nokogiri 提取 RSS 链接

java - jsoup 发布和 cookie

python - 避免 python scrapy 中的响应重叠

python - 如何将参数从 vimscript 函数传递到 python 接口(interface)?

python - 为 Python 2.4 即兴替换 "with"语句

python - Python (3) 中的 "everything"是某个类的实例吗?