【问题标题】:PHP/Javascript - Posting parameters to page, then parsing new html?PHP/Javascript - 将参数发布到页面,然后解析新的 html?
【发布时间】:2010-12-21 23:00:52
【问题描述】:

最终编辑:

我使用以下代码使 DOMxpath 查询工作:

$divs = $xpath->evaluate("/html/body//div/table[@id='resulttable']");

不过,我不明白为什么这段代码不能以同样的方式工作:

$divs = $xpath->query("//table[@id='resulttable']");

有什么想法吗?

【问题讨论】:

  • 您需要一个浏览器来运行 Javascript。 PHP 做不到。

标签: php javascript html post parameters


【解决方案1】:

好的。这些类实际上并没有通过 Javascript 动态列出和搜索,它是一个非常标准的静态表单......您将希望使用 cURL 通过提交所需的 POST 参数来获取生成的页面。您的 POST 参数是:

0       TERM    select                  
1       DIVS    select                  
2       CAMPUS  select                  
3       SUBJ    select          4       
4       ATTR    select                  
5       CREDIT  select                  
6           submit  Search

【讨论】:

  • 感谢这工作。请在上面查看更多问题。
【解决方案2】:

您可以在 PHP 中使用 curl 发布和获取结果。试试这个教程http://www.electrictoolbox.com/php-curl-form-post/

此外,您可以通过在 Firebug 中检查 AJAX 请求来确定要发布的参数

【讨论】:

  • 您能解释一下如何检查 AJAX 请求吗?我在任何地方都找不到它。
  • @FatherStorm 是对的,这是一个标准的 POST 请求。但是您仍然可以在 Firebug 中的 NET 选项卡下查看它。以下是该页面上用于 POST 请求的参数:TERM=201100&DIVS=A&CAMPUS=M&SUBJ=ACCT&ATTR=0ANY&CREDIT=A
  • 感谢这工作。请在上面查看更多问题。
【解决方案3】:

添加另一个答案,因为现在这是一个完全不同的问题。

我不知道为什么它不起作用,根据手册一切正常。但我可以建议改用phpQuery 吗?当我有类似的任务时,我尝试过。这样您就可以将表达式重写为

/** @var $pq phpQuery */
$divs = $pq->find('table#resulttable');

并使用其他熟悉的 jQuery 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多