如何在使用Python和lxml抓取时选择“加载更多结果”按钮
我正在抓取一个网页。这个网页上有50条信息。看完这50条后,会出现一个加载更多结果的按钮。我需要自动点击这个按钮。请问我该怎么做呢?我使用的是Python和Lxml来进行抓取。
2 个回答
1
你不能这样做。这个功能是由javascript提供的,而lxml是不会执行javascript的。
4
连JavaScript都在用http请求来获取数据,所以一种方法就是研究一下,当用户点击“加载更多结果”时,哪些请求在提供数据,然后模拟这些请求。
这不是传统的网页抓取,传统抓取是基于普通的或渲染后的html内容,并且通过检测进一步的链接来获取数据,但这种方法可以作为一个有效的解决方案。
接下来的步骤:
- 在Google Chrome或Firefox浏览器中打开页面
- 按F12键打开开发者工具或Firebug
- 切换到“网络”标签
- 点击“加载更多结果”按钮
- 查看哪些http请求提供了加载更多结果的数据,以及它们返回了什么数据。
- 尝试用Python模拟这些请求
需要注意的是,数据不一定是以HTML或XML的形式出现,也可能是JSON格式。不过Python提供了足够的工具来处理这种格式。