如何通过Python使用javascript加载.html来解析web?
我正在使用Python解析一个拍卖网站 如果我使用浏览器打开此网站,它将转到加载页面,然后自动跳转到搜索结果页面 如果使用urllib2打开网页,read()方法只返回加载页面 是否有任何python包可以等到所有内容加载完毕,然后read()方法返回所有结果如何通过Python使用javascript加载.html来解析web?,javascript,python,Javascript,Python,我正在使用Python解析一个拍卖网站 如果我使用浏览器打开此网站,它将转到加载页面,然后自动跳转到搜索结果页面 如果使用urllib2打开网页,read()方法只返回加载页面 是否有任何python包可以等到所有内容加载完毕,然后read()方法返回所有结果 谢谢。搜索页面是如何工作的?如果它使用Ajax加载任何内容,您可以执行一些基本的反向工程,并使用Firebug的网络面板或Wireshark查找涉及的URL,然后使用urllib2加载这些URL 如果比这更复杂,您可以模拟JS手动执行的操
谢谢。搜索页面是如何工作的?如果它使用Ajax加载任何内容,您可以执行一些基本的反向工程,并使用Firebug的网络面板或Wireshark查找涉及的URL,然后使用urllib2加载这些URL 如果比这更复杂,您可以模拟JS手动执行的操作,而无需加载和解释JavaScript。这完全取决于搜索页面的工作方式
最后,我知道有一些方法可以在没有浏览器的页面上运行脚本,因为这是一些功能测试套件所做的,但我猜这可能是最复杂的方法。在跟踪拍卖网站源代码后,我发现它使用.php创建加载页面并重定向到结果页面。反向工程无法找到真正的URL,因为它与加载页面的URL相同 还有@Manoj Govindan,我试过机械化,但即使我加上
br.set_handle_refresh(True)
br.set_handle_redirect(True)
它仍在阅读加载页面
在www上搜索了几个小时后,我找到了一个可能的解决方案:使用pywin32
import win32com.client
import time
url = 'http://search.ruten.com.tw/search/s000.php?searchfrom=headbar&k=halo+reach'
ie = win32com.client.Dispatch("InternetExplorer.Application")
ie.Visible = 0
ie.Navigate(url)
while 1:
state = ie.ReadyState
if state == 4:
break
time.sleep(1)
print ie.Document.body.innerHTML
然而,这只适用于win32平台,我正在寻找一种跨平台的解决方案
如果有人知道如何处理这个问题,请告诉我。您考虑过使用Mechanize吗?谢谢重播。问题是,我还没有学会javscript,因此逆向工程对我来说很难。因此,我询问是否有任何包可以检查网页状态,如xmlhttprequest.readyState==4。我尝试过机械化,但这在ajax页面中似乎没用。现在看来,学习javascript是最好的解决方案……@seed。你不需要知道javascript。只需使用firebug查看ajax请求的内容。然后使用urllib2加载它。