4

嗨,我正在使用 python 2.5 和 beautifulsoup 构建一个刮板,但我遇到了一个问题......用户单击某个按钮后正在生成网页的一部分,通过使用适当的参数调用特定的 javacsript 函数来启动 ajax 请求

有没有办法模拟用户交互并得到这个结果?我遇到了一个机械化模块,但在我看来,这主要用于处理表单......

我将不胜感激任何链接或一些代码示例谢谢

4

2 回答 2

6

好的,所以我想通了......在我意识到我可以使用 urllib、ulrlib2 和 beautifulsoup 的组合之后,这很简单

import urllib, urllib2
from BeautifulSoup import BeautifulSoup as bs_parse

data = urllib.urlencode(values)
req  = urllib2.Request(url, data)
res  = urllib2.urlopen(req)
page = bs_parse(res.read())
于 2010-04-10T12:59:27.107 回答
3

不,你不能轻易做到这一点。AFAIK 你的选择是,最简单的第一:

  1. 自己阅读 AJAX javascript 代码,作为人类程序员,理解它,然后编写 python 代码手动模拟 AJAX 调用。您还可以使用一些捕获软件来捕获实时发出的请求/响应,并尝试用代码重现它们;
  2. 使用selenium或其他浏览器自动化工具在真实的网络浏览器上获取页面;
  3. 使用一些像spidermonkeypyv8这样的 python javascript 运行器来运行 javascript 代码,并将其连接到您的 HTML dom 副本;
于 2010-04-09T19:19:32.280 回答