Javascript解析
您遇到的问题是在页面加载后加载数据的JavaScript过滤器。警告您正在使用adblock的消息以原始HTML格式存在,并且是完全静态的。当JavaScript调用能够验证adblock存在或不存在的位置时,它将被替换。有几种方法可以解决这个问题,但是每种方法都需要找到加载JavaScript的方法。在
解决方案
你的问题有几种解决办法。你可以关于它们的here。在Embed a web browser within an application and simulate a normal user.
Remotely connect to a web browser and automate it from a scripting
language.
Use special purpose add-ons to automate the browser
Use a framework/library to simulate a complete browser.
如您所见,每一个都需要模拟浏览器和DOM对象。由于有几个库可以帮助您实现这一点,我强烈建议您查看上面的url。在
下面是来自同一个页面的代码示例,演示如何在通过JavaScript生成url的页面上检索url。它依赖于一个来自gargoylesoftware的库。在import com.gargoylesoftware.htmlunit.WebClient as WebClient
import com.gargoylesoftware.htmlunit.BrowserVersion as BrowserVersion
def main():
webclient = WebClient(BrowserVersion.FIREFOX_3_6) # creating a new webclient object.
url = "http://www.gartner.com/it/products/mq/mq_ms.jsp"
page = webclient.getPage(url) # getting the url
articles = page.getByXPath("//table[@id='mqtable']//tr/td/a") # getting all the hyperlinks
if __name__ == '__main__':
main()
然而,
我不知道你为什么要刮一个网页,或者你从哪个网站上刮掉它。然而,自动化这些数据收集是违反各种网站的条款和条件的,我建议你在遇到任何麻烦之前修改这些条款。在
进一步研究
如果您正在寻找问题的更一般的答案(例如“如何使用Python加载javascript?”),我强烈建议您查看本网站上以前的答案,因为它们提供了一些非常好的问题见解: