我们已经为Red Hat Linux Server配置了运行python api以进行网页抓取。此服务器不对世界各地的所有链接开放。 URL必须列入白名单才能在该网站上进行访问。
我们已将itunes,Vudu.com和Target.com列入白名单
运行Selenium时,我们可以从iTunes成功获取。但面对Target和Vudu的以下问题。
from selenium import webdriver
display = Display(visible=0, size=(1366,768))
display.start()
driver = webdriver.Firefox()
对于iTunes,
driver.get("https://itunes.apple.com/us/movie/the-angry-birds-movie/id1100915157")
result = driver.find_element_by_class_name("price")
For Target,
driver.get("http://www.target.com/p/the-angry-birds-movie-blu-ray-dvd/-/A-51194551")
result = driver.find_element_by_class_name("price")
说明: 如果是Target,则会加载网页并返回HTML。但问题是,有一些Api调用将在浏览器中运行到#fetch价格和其他细节。那些被封锁,没有运行。因此返回的HTML内容只是部分内容。所以无法找到标签#corresponding for Price。所以我们得到了NoSuchElementException。
对于Vudu,
driver.get("http://www.vudu.com/movies/#!content/777662/The-Legend-of-Tarzan") #This line itself fail.
说明: 在Vudu的情况下,没有回应。甚至不是我们在Target中获得的部分HTML。它无限期地等待而不会抛出任何错误。当我们手动停止执行时,我们可以看到以下错误。在突出显示的行上,它只是等待响应。
不确定如何解决此问题。我们已经将target.com,vudu.com,api.target.com列入白名单。但仍然是同样的错误。
任何人都可以请帮助。