javascript - 从ajax驱动的网站检索渲染的html

标签 javascript python html http parsing

我当前正在尝试用 python 编写一个脚本,该脚本允许我向网页发送 get 请求(使用 python requests 模块),然后使用模块 beautiful soup 解析响应。

我遇到的问题是,我尝试获取的表是在初始 DOM 加载后通过 JavaScript 加载/创建的,因此对我的 get 请求的响应不包含它。

最佳答案

您可以做两件事,这取决于您的问题。

<强>1。直接获取表格
如果您确实想要获取该表,请检查发出了什么请求来获取该表。例如,您可以使用 Firebug 或 Chrome 开发者工具来获取请求的正确结构。

<强>2。 Javascript很重要
如果支持许多网站更重要,并且 javascript 发挥一些魔力也很重要,那么您可以使用类似 Selenium 的内容。使用执行 Javascript 的 Brwoser,您可以在加载表格后获取源代码。

<小时/>

更新 - 根据您评论中的网址
您可以在 Chrome 开发者工具的 Network 选项卡上看到,该请求的加载时间非常长:

http://www.ticketmaster.com/json/browse/music?select=n93

因此我们假设这会加载您的数据。在浏览器中打开 URL,您会看到表的数据位于 JSON Format 中。 。 如果您只想解析/获取此表,而对很多页面没有通用的内容,那么我只需用这种方法获取数据即可。

更新
尝试使用过滤器或日期范围更改表格。您可以检查 API 的工作原理并按照您想要的方式发出请求。

future 7 天中过滤舞蹈/电子:
/json/browse/music?g=Dance%2FEectronic&select=n7

还有另一个 API 调用:
http://www.ticketmaster.com/json/browse/music/histogram?select=n7

但我无法告诉你它的用途。但我认为你现在有了一个好的方向,并且比我有更多的时间来理解它是如何运作的;)

<小时/> 工具
我用来查找 URL 的工具是内置的 Chrome Developer Tool使用网络选项卡。激活该工具,刷新页面并修改请求以了解发生的情况。

用python解析JSON也很容易:http://docs.python.org/library/json.html

关于javascript - 从ajax驱动的网站检索渲染的html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11331255/

相关文章:

javascript - 单击 Firebase 数据和 React Native 获取列表项信息

python - 对同一解析函数产生多个请求。函数运行的顺序是什么?抓取痧

python - 如何删除基于日期的重复元素

python - 将赤道转换为alt-az坐标非常慢

html - 在 Razor View 中的三元 if 运算符内分配变量

javascript - Angular ng-repeat $index

php - 尝试将SQL语句生成的JSON数据从PHP脚本返回到JS网页,却得到null

javascript - 如何在 javascript 中选择正确的键 py 值?

javascript - 我如何使用 CodeIgniter 在 Ajax 中切片数组以进行分页?

javascript - Sprite 向某一特定点移动的方式