Html NSURLRequest/URLWithString未加载整个网页文本

Html NSURLRequest/URLWithString未加载整个网页文本,html,ios,xpath,Html,Ios,Xpath,我正在启动一个iOS项目,其中包括解析网页中的一些数据。我打算用 我开始使用“.”作为测试用例,使用XPath(通过Hpple使用Libxml2)解析页面。XPath/Hpple似乎工作得很好,但我注意到我无法从页面中找到用户的帖子。在尝试了多种XPath命令组合后,我意识到用户帖子根本不在NSURLRequest或URLWithString给我的文本中。据我所知,似乎有很多结构类型的数据 当我使用FireFox和FireBug时,我会在Div节点中看到帖子,比如 <div data-ft

我正在启动一个iOS项目,其中包括解析网页中的一些数据。我打算用

我开始使用“.”作为测试用例,使用XPath(通过Hpple使用Libxml2)解析页面。XPath/Hpple似乎工作得很好,但我注意到我无法从页面中找到用户的帖子。在尝试了多种XPath命令组合后,我意识到用户帖子根本不在NSURLRequest或URLWithString给我的文本中。据我所知,似乎有很多结构类型的数据

当我使用FireFox和FireBug时,我会在Div节点中看到帖子,比如

<div data-ft="{&quot;tn&quot;:&quot;K&quot;}" class="mbs _5pbx userContent">We are accepting donations at our thrift store!! Please bring your gently used items here/div>
我们在旧货店接受捐赠!!请将您的常用物品带到这里/div>
当我直接从FireFox获取页面源代码时,大多数用户的帖子也会丢失。因此,以下事情之一正在发生

  • 我不理解HTML的结构,需要使用不同的方式来加载此文本
  • FB有一个非常复杂的HTML,它以某种方式编码/隐藏文本
  • NSURL有一些设置,我不理解它们正在编码/未加载此文本,但我找不到它
  • 我可以从一个更简单的网站开始,但我选择FB是因为它的复杂性,因为我想确保我编写的解析器能够在任何给定的网站上工作

    我确信这是我对如何解析网页的一个非常明显的误解,有人能给我指出正确的方向吗

    我可以从一个更简单的网站开始,但我选择FB是因为它的复杂性,因为我想确保我编写的解析器能够在任何给定的网站上工作

    也许不是最好的开始方式。在处理复杂的问题之前,最好先获得一些简单问题的经验


    关于您的具体问题:不要试图刮脸书。他们使用大量ajax获取数据,第一步是使用无头浏览器,您需要将其自动化(但这将导致性能严重下降)。其次,他们经常改变他们的网站,解析它很可能经常中断


    另一方面,它们提供了一个,也就是。

    单个HTML页面(基本上是单个文本文件)和浏览器中显示的“正在运行”页面之间有很大的区别,后者就像HTML源代码上的编译器,加载JS、CSS、图像和其他文件,开始执行Javascript(和其他脚本),这反过来可能会加载大量JSON数据,这反过来又会加载大量额外的HTML或动态更改DOM模型

    NSURLRequest
    /
    URLWithString
    只返回原始HTML小文本文件

    作为用户,您在Firefox中看到的,或者通过FireBug检查DOM模型——这就是浏览器的用途,这与您收到的文件不同
    NSURLRequest
    /
    URLWithString
    metods


    所以,如果你了解所有这些复杂性,要么你想开发自己的浏览器,要么你需要看看WebKit,看看它是否能帮助你。

    是的,这很有道理,我应该意识到这一点,但显然需要你为我解释一下。看起来我的客户希望我使用WebKit。我们希望处理多个站点,因此我可能无法使用FB API,但我将此标记为答案并进行了投票,因为如果只对FB站点本身进行操作,这显然是最好的解决方案。我简要地查看了API,非常令人印象深刻,谢谢。