javascript - 既然 Twitter 需要 JavaScript,我该如何抓取它们?

标签 javascript php curl xpath twitter

我有几个网站可以监控 Twitter 的特定类型的语句,并使用 PHP 中的 curl 抓取相关的推文。几天前,这些网站停止抓取 Twitter。我想他们可能重新设计了他们的 mobile.twitter 网站的布局,我所要做的就是将我的 xPath 查询更改为不同的类或其他东西,但我发现每当你尝试在没有启用 JavaScript 的情况下访问 Twitter 时,你都会得到启用 JavaScript 访问 Twitter 的提示。似乎没有办法解决这个问题。在此更改之前,人们可以访问不需要 JavaScript 的 Twitter 版本,因此我可以使用简单的 curl 请求和 xPath 查询来抓取推文。
我在 Google 上搜索了启用 JavaScript 支持 curl 请求的方法,但一无所获。是否可以在 curl 请求中添加一些内容来解析 JavaScript,或者我是否需要找到其他解决方案?

最佳答案

您不能在 curl 上“启用”JavaScript。它不是浏览器,它只处理 HTTP 请求。您是否考虑过使用 Twitter API?
您还可以使用浏览器的开发工具在 twitter 上拦截 XHR,并通过它们来确定您需要发出什么 HTTP 请求才能获得所需的数据。
另一种解决方案是使用可编写脚本的“ headless ”浏览器。查看 CapsperJS。简单地说,它是一个功能齐全的浏览器,不显示任何 UI,您可以通过 JS 控制它。

关于javascript - 既然 Twitter 需要 JavaScript,我该如何抓取它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65403350/

相关文章:

php - curl返回200找不到页面

ios - 添加 curl 参数 CURLOPT_USERPWD IOS

javascript - 解析没有双引号的格式错误的 json 字符串(Java 脚本)

php - Laravel 8 创建后的出厂状态

PhpUnit 测试 stub 方法多次返回

php - preg_replace http 为 https

php - 将 Firebase Cloud Messaging 发送到手机设备

javascript - 尝试创建一个除以 3 的 for 循环

javascript - 在 *iPad 上的 Safari 上按 "back"按钮时未收到“pageshow””

javascript - 如何在JavaScript字符串replace(...)方法的第二个参数中引用搜索值?