在使用DHTML、AJAX等的网站上用Python mechanize?
假设我想做一个程序,能够自动回复推特上某个特定“话题关键词”的推文(比如说“#第一世界问题”)。我写了一个脚本,内容大致如下:
# apply settings, create a mechanize.Browser, etc.
login() # log into twitter
# at this point we've logged into twitter, now, we will perform navigate to their search page and run a search query:
br.open('http://twitter.com/search?q=' + hashtag)
print(br.response().read()) # print the response
上面的代码只是一个简化版,目的是快速找到我遇到的问题。
我设置了一个浏览器,登录了推特,这部分没问题。但是,当我用 br.open 搜索这个话题时,我打印出来的结果却没有我想要的内容。
在推特上,只有当你把鼠标悬停在某个特定链接上时,“回复”链接才会出现,并且它指向“#”(因为它会打开一个小弹窗,你可以在里面输入你的回复)。那么,我该如何点击这个“回复”链接呢?因为它在我得到的结果中并没有显示出来。
1 个回答
2
如果你遇到的问题只是想访问Twitter,那么dmedvinsky的说法可能是对的。
不过,如果你真的想要抓取网站内容(同时让网站的JavaScript正常运行),你可能需要一些更强大的工具。
虽然这些工具可能有点复杂,但我强烈建议你使用Qt和PySide,并熟悉QWebKit。这样,你可以通过Python来控制一个“真正的”网页浏览器,享受到所有的好处(当然也会遇到一些问题;)不过到目前为止,这是我找到的最好的、最干净的方法来实现你想要的功能。