- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在寻找一个 PHP 库,它允许我删除网页并处理所有 cookie 并使用默认值预填充表单,这是最让我烦恼的。
我厌倦了必须将每个输入元素与 xpath 匹配,如果存在更好的东西我会很高兴。我遇到过 phpQuery 但手册不是很清楚,我无法找到如何发出 POST 请求。
有人可以帮助我吗?谢谢。
@Jonathan Fingland:
在 browserGet() 手册提供的示例中,我们有:
require_once('phpQuery/phpQuery.php');
phpQuery::browserGet('http://google.com/', 'success1');
function success1($browser)
{
$browser->WebBrowser('success2')
->find('input[name=q]')->val('search phrase')
->parents('form')
->submit();
}
function success2($browser)
{
echo $browser;
}
我想所有其他字段都被废弃并在 GET 请求中发回,我想用 phpQuery::browserPost() 方法做同样的事情,但我不知道该怎么做。我试图抓取的表单有一个输入 token ,我希望 phpQuery 能够足够聪明地抓取 token 并让我更改其他字段(在本例中为用户名和密码),通过 POST 提交所有内容。
PS:请放心,这不会用于发送垃圾邮件。
最佳答案
参见 http://code.google.com/p/phpquery/wiki/Ajax,特别是:
phpQuery::post($url, $data, $callback, $type)
和
# data Object, String
将数据参数定义为对象或字符串。 POST 请求应该可以使用查询字符串格式,例如:
$data = "username=Jon&password=123456";
$url = "http://www.mysite.com/login.php";
phpQuery::post($url, $data, $callback, $type)
因为 phpQuery 是一个 jQuery 端口,方法签名是相同的(文档直接链接到 jquery 站点 -- http://docs.jquery.com/Ajax/jQuery.post)
编辑
两件事:
还有一个 phpQuery::browserPost
函数可能会更好地满足您的需求。
但是,另请注意,success2 回调仅在 submit()
or click()
方法上调用,因此您可以在此之前填写所有表单字段。
例如
require_once('phpQuery/phpQuery.php');
phpQuery::browserGet('http://www.mysite.com/login.php', 'success1');
function success1($browser) {
$handle = $browser
->WebBrowser('success2');
$handle
->find('input[name=username]')
->val('Jon');
$handle
->find('input[name=password]')
->val('123456');
->parents('form')
->submit();
}
function success2($browser) {
print $browser;
}
(请注意,这尚未经过测试,但应该可以工作)
关于php - PHP 的抓取库 - phpQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644669/
我需要使用 PHPQuery 根据下拉列表的 id 获取数组中下拉列表的所有值。 HTML如下: -- Select your Semester -- 2nd 4th
有没有人有关于在 CodeIgniter 中使用 phpQuery 的方法和教程? 我问是因为我想操纵某些 css 属性并换出某些 css 值。我本可以使用 JavaScript 完成此操作,但很难混
有没有人有关于在 CodeIgniter 中使用 phpQuery 的方法和教程? 我问是因为我想操纵某些 css 属性并换出某些 css 值。我本可以使用 JavaScript 完成此操作,但很难混
我想看看有没有办法实现 phpQuery 上的“最接近”方法(就像在 jQuery 上一样)。 有这种事吗? 最佳答案 来自 Commonly Confused Bits Of jQuery : CL
我正在使用 phpQuery 来解析页面,但是我注意到当它与带有无效标记的页面一起使用时,它会导致 PHP Fatal error: Uncaught exception 'Exception' wi
我尝试使用 PHPquery 来抓取网页 (free-lance.ru) Simple HTML Dom 中的等效代码正在运行: include('simple_html_dom.php'); $sh
好吧,这让我抓狂。我正在尝试使用 phpQuery 屏幕抓取以下看似微不足道的 HTML: 10-05-200906:1017:35 -1 日期很简单,因为它包含在 nobr 标签中,例如。 $ele
我使用 phpQuery 制作了一个脚本。该脚本查找包含特定字符串的 td: $match = $dom->find('td:contains("'.$clubname.'")'); 到目前为止效果很
我正在寻找一个 PHP 库,它允许我删除网页并处理所有 cookie 并使用默认值预填充表单,这是最让我烦恼的。 我厌倦了必须将每个输入元素与 xpath 匹配,如果存在更好的东西我会很高兴。我遇到过
我正在使用 phpquery 从网页中提取一些数据。我需要识别页面的菜单。我的实现是找到每个元素的 sibling > 0 和最后一个 child 是 "a"。我的代码是: foreach($this
您好,我需要删除屏幕碎片网站的链接,这里是输出源。 Friday Hi 19 / 66 L
我正在尝试使用 PHPQuery 的 WebBrowser 插件登录网站。我能够成功登录,但我不确定如何将上一次调用的 cookie 重新用于下一次调用。 $client = phpQuery::br
phpQuery是一个非常好的工具,它在过去对我解析格式良好的 XHTML 和 XML 文档提供了极大帮助,但我最近遇到了一个问题,试图选择标记名中有冒号的元素,例如: 我尝试使用 pq() 函数来
Update1:完整的源代码: $html1 = ' '; $doc = phpQuery::newDocument($html1); $html1 = $doc->remove('scrip
如何使用 phpquery 检查#id 是否存在? jQuery: if ($("#mydiv").length > 0){ // element exist } phpquery使用 ->h
我想替换所有带有 的标签使用 phpquery。我的代码有什么问题?它找到了 span但是 replaceWith 函数没有做任何事情。 $event = phpQuery::newDocument
我是 phpQuery 的新手.我需要完成获取网页 HTML TITLE 标签内容的简单任务。在这种情况下,我试图获取“Yahoo!”的标题内容。那应该是“Yahoo!”。 我正在用 phpQuery
我想使用phpQuery用于解析 DOM 元素。这是the HTML tree我想使用 PHP 递归函数导入 MySQL 数据库。 MySQL 数据库将树存储为类别(带有子、子、..、类别) crea
我正在尝试掌握 php simple html dom,但在涉及 div 类时遇到了一些问题。 例如,在 newegg 上我想找到 div 类“skiplink”的值(我只是在网站上随机选择了一个类)
我是一名优秀的程序员,十分优秀!