首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >请求返回部分页面

请求返回部分页面
EN

Stack Overflow用户
提问于 2016-10-19 10:12:24
回答 2查看 906关注 0票数 2

当用户滚动时,我试图解析一个加载的网站的数据。滚动时可以显示有限数量的元素,但使用该元素只会给出第一部分(112个元素中的25个):

代码语言:javascript
运行
复制
url = "http://url/to/website"
response = requests.get(url)
soup = BeautifulSoup(response.text)

在返回html之前,我如何告诉request“滚动”?

编辑:显然,请求不要这样做,我可以在Python中使用什么解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-19 10:32:57

您唯一应该知道的是serverlet是如何工作的。

通常,onScrollonClick或任何其他事件都会触发服务器的AJAX request。客户端javascript将呈现这些返回(JSON/XML.)因此,您应该做的唯一一件事就是将这些AJAX请求重复到同一台服务器上,以获取这些数据。

例如,浏览器中的操作如下所示:

代码语言:javascript
运行
复制
1. Enter url on browser   
> [HTTP GET REQUEST] http://url/to/website

2. Scroll on the page
> [AJAX GET] http://url/to/website/1
> [javascript on front-end will process those data]

3. Then, keeping scrolling on the page
> [AJAX GET] http://url/to/website/2
> [javascript on front-end will process those data]

4. ... (and so on)

Q.如何使用python获取这些数据?

答:一种简单的方法是使用browser > inspect > network_tab查找在页面中滚动时发送的AJAX请求。并通过python使用相应的标头重复这些AJAX请求。

票数 2
EN

Stack Overflow用户

发布于 2016-10-19 10:18:52

你不能。这个问题是基于对请求的误解,它只加载页面的内容。没完没了的滚动是由Javascript驱动的,而Javascript的请求是不会做任何事情的。

您需要一些浏览器自动化工具(比如Selenium )来完成这项工作;或者找出滚动的JS使用的Ajax端点并直接加载它。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40128383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档