当前位置: 首页 > 面试题库 >

使用Selenium和python捕获AJAX响应

龙玄天
2023-03-14
问题内容

我单击Firefox中的链接,网页使用javascript发送请求,然后服务器发送某种响应,其中包括网站地址。这样,新网站就会在新窗口中打开。链接后面的html代码是(我省略了initial和final
<span>标签):

> class="taLnk hvrIE6"
> onclick="ta.trackEventOnPage('AttractionContactInfo', 'Website',
> 2316062, 1); ta.util.cookie.setPIDCookie(15190);
> ta.call('ta.util.link.targetBlank', event, this,
> {'aHref':'LqMWJQiMnYQQoqnQQxGEcQQoqnQQWJQzZYUWJQpEcYGII26XombQQoqnQQQQoqnqgoqnQQQQoqnQQQQoqnQQQQoqnqgoqnQQQQoqnQQuuuQQoqnQQQQoqnxioqnQQQQoqnQQJMsVCIpEVMSsVEtHJcSQQoqnQQQQoqnxioqnQQQQoqnQQniaQQoqnQQQQoqnqgoqnQQQQoqnQQWJQzhYmkXHJUokUHnmKTnJXB',
> 'isAsdf':true})">Website

我想捕获服务器响应并使用Python和Selenium提取“新网站”。我一直在使用BeautifulSoup进行抓取,对Selenium来说还很陌生。

到目前为止,我已经能够找到该元素并使用selenium单击它,它会在新窗口中打开“新网站”。我不知道如何从服务器捕获响应。


问题答案:

我无法使用硒捕获AJAX响应,但这是可行的,尽管没有硒:

1-通过监视浏览器中的网络分析工具找出XML请求

2
=确定请求后,请使用Python的请求或urllib2模块重新生成请求。我个人推荐请求,因为它具有其他功能,对我来说最重要的是request.Session。

您可以找到有关这两个步骤的大量帮助和相关文章。

希望有一天能对某人有所帮助。



 类似资料:
  • 问题内容: 我正在使用pythonDjango创建一个Web应用程序。我正在使用selenium来启动无头浏览器(phantomjs)并单击几次,直到到达特定页面。我希望捕获网络流量并获得特定网络呼叫的响应。该网络调用实际上包含一个html文档作为其响应。 有什么办法可以做到这一点? 问题答案: 您可以访问浏览器或chromedriver日志,它们在网络响应方面略有不同。称为浏览器日志,称为驱动程

  • 我正在使用Python 2.7和OpenCV 2.4。9 我需要捕获显示给用户的当前帧,并将其加载为Python中的cv::Mat对象。 你们知道一种快速递归的方法吗? 我需要像下面的例子中所做的那样,从网络摄像头递归地捕获Mat帧: 在本例中,它使用了VideoCapture类来处理从网络摄像头捕获的图像。 用视频捕捉。read()新帧总是被读取并存储到Mat对象中。 我可以将“打印屏幕流”加载

  • 是否可以用Selenium WebDriver捕获用户输入/操作,就像您可以使用Selenium IDE记录/创建测试一样? 即当用户输入URL、单击链接、填充文本框、单击按钮等时。 我希望能够使用WebDriver而不是仅仅使用Selenium IDE捕获这些操作,因为我想与Java应用程序中可用的其他类集成。

  • 问题内容: 我想捕获到我正在浏览使用python的Selenium的网站的访问量,因为使用代理将使访问量达到https的水平,这将不会使我走远。 我的想法是使用selenium来运行phantomJS并使用phantomJS执行脚本(不是在页面上使用webdriver.execute_script(),而是在phantomJS本身上)。我在想netlog.js脚本(从这里https://githu

  • 我有一个带有Rest控制器的Spring启动应用程序,它将接受来自外部方A的超文本传输协议请求。 我想将此请求转发给另一方B。需要捕获来自B响应的数据,然后转发回A。 我最初的想法是通过RestTemplate发出另一个请求,等待响应,捕获必要的数据,然后转发回A。 我只是想知道是否有更巧妙的方法? 提亚