python - 使用 Python 和 lxml 抓取时如何选择 "Load more results"按钮

标签 python web-scraping lxml

我正在抓取一个网页。该网页包含 50 个条目。 50 个条目后,它给出了 加载更多结果按钮。我需要自动选择它。我该怎么做。对于抓取,我使用 Python、Lxml。

最佳答案

即使 JavaScript 也在使用 http 请求来获取数据,因此一种方法是调查当用户要求“加载更多结果”并模拟这些请求时哪些请求正在提供数据。

这不是传统的抓取,它基于纯文本或呈现的 html 内容并检测进一步的链接,但可以是可行的解决方案。

下一步行动:

  • 在 Google Chrome 或 Firefox 中访问页面
  • 按 F12 启动开发者工具或 Firebug
  • 切换到“网络”标签
  • 点击“加载更多结果”
  • 检查哪些 HTTP 请求为加载更多结果提供了数据以及它们返回了哪些数据。
  • 尝试从 Python 模拟这些请求

请注意,数据不一定采用 HTML 或 XML 格式,但可以采用 JSON 格式。但是 Python 也提供了足够的工具来处理这种格式。

关于python - 使用 Python 和 lxml 抓取时如何选择 "Load more results"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24304640/

相关文章:

python - Django Queryset 使用 .extra 查询多对多关系

python - 无法使用请求从网站上抓取不同公司的链接

python - 如何通过特定子/后代元素选择元素

python - 使用lxml删除中文HTML文件中的多余空格

python - 模块导入错误 Python

python - 查找 2 个用户输入数字的倍数和约数的数字

python - 无法获得 supervisord 监控进程的输出

python - 为什么 python scrapy 在我的代码中产生重复的项目?

python - xpath <p> 里面 <h3> 空

python - 将 python 脚本编译为 C 时如何修复 Cython header 错误