标签: phpquery

PHPQuery从下拉列表中选择所有值

我需要根据id使用PHPQuery的下拉列表获取数组中下拉列表的所有值.

以下是HTML:

<select name="semester" id="semester" class="inputtxt" onChange="javascript:selectSemester(this, this.form);">
    <option value="">-- Select your Semester --</option>
    <option value="2nd" selected>2nd</option>
    <option value="4th" >4th</option>
    <option value="6th" >6th</option>
    <option value="8th" >8th</option>
    <option value="SE1" >SE1</option>
    <option value="SE3" >SE3</option>
    <option value="SE5" >SE5</option>
    <option value="SE7" >SE7</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我试过这个:

$semesters = $all['#semester'];

foreach ($semesters as $semester) {
    echo pq($semester)->text();
    echo '<br>';
}
Run Code Online (Sandbox Code Playgroud)

但是我只得到一个输出,并且所有值都连接在一起.如何将每个值作为数组中的单独元素?

php phpquery

11
推荐指数
1
解决办法
1032
查看次数

如何使用phpquery找到标签名称?

我正在使用phpquery从网页中提取一些数据.我需要识别页面的菜单.我的实现是找到sibilings> 0且last-child为的每个元素"a".我的代码是:

foreach($this->doc['*'] as $tagObj){
$tag = pq($tagObj);
if(count($tag->siblings()) > 0){
    if($tag->find(":last-child")->tagName  === "a")
        echo trim(strip_tags($tag->html())) . "<br/>";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我没有得到任何输出因为

$标签 - >找到( ":最后的孩子") - >标签名

哪个没有返回任何东西.这是什么原因?

php jquery dom phpquery

11
推荐指数
1
解决办法
1739
查看次数

PHP的Scraping Library - phpQuery?

我正在寻找一个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;
}
Run Code Online (Sandbox Code Playgroud)

我想所有其他字段都被废弃并在GET请求中发回,我想用phpQuery :: browserPost()方法做同样的事情,但我不知道该怎么做.我试图刮的形式有一个输入令牌,我很乐意,如果phpQuery足够聪明,可以刮掉令牌,让我更改其他字段(在这种情况下是用户名和密码),通过POST提交一切.

PS:请放心,这不会用于垃圾邮件.

php screen-scraping phpquery

8
推荐指数
1
解决办法
4854
查看次数

使用php修复html文档上错误显示的编码

有没有办法通过phpquery :: newDocument运行这个html标记后修复显示不正确的字符?在使用phpquery创建新文档后,原始文档中的-Classics和现代Woman之间会出现双引号.

    //Original document is UTF-8 encoded
$raw_html = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><p>Mr. Smith of Bangkok celebrated the “Classics with modern Woman”.</p></body></html>';
print($raw_html);

$aNew_document = phpQuery::newDocument($raw_html);
print($aNew_document);
Run Code Online (Sandbox Code Playgroud)

原始输出:曼谷史密斯先生庆祝"与现代女性的经典".

新文件输出:曼谷史密斯先生与现代女性一起庆祝"经典".

php encoding phpquery

8
推荐指数
1
解决办法
1万
查看次数

PHPQuery WebBrowser插件 - 使用cookie

我正在尝试使用PHPQuery的WebBrowser插件登录网站.我能够成功登录,但我不确定如何重复使用之前调用的cookie到下一个.

$client = phpQuery::browserGet('https://website.com/login', 'success1');

function success1($browser) {
  $handle = $browser
    ->WebBrowser('success2');
  $handle 
    ->find('input[name=name]')
      ->val('username');
  $handle 
    ->find('input[name=pass]')
      ->val('password')
      ->parents('form')
        ->submit();
}

function success2($browser) {
    print $browser; // prints page showing I'm logged in

    // make authenticated requests here
}
Run Code Online (Sandbox Code Playgroud)

如何使用会话/登录cookie发出其他请求?

php browser phpquery web-scraping

6
推荐指数
1
解决办法
1034
查看次数

如何使用PHPQuery删除HTML标记?

Update1:​​使用完整的源代码:

$html1 = '<div class="pubanunciomrec" style="background:#FFFFFF;"><script type="text/javascript"><!--
google_ad_slot = "9853257829";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script> 
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script></div>';

$doc = phpQuery::newDocument($html1);
$html1 = $doc->remove('script');
echo $html1;
Run Code Online (Sandbox Code Playgroud)

源代码就是上面这个.我还读到存在一个错误,http://code.google.com/p/phpquery/issues/detail?id = 150我不知道它是否已经解决.

有关如何从此HTML中删除< script >的任何线索?

最好的祝福,


嗨,

我需要使用PhpQuery从HTML文档中删除所有< script >标记.

我做了以下事情:

$doc = phpQuery::newDocument($html);

$html = $doc['script']->remove();
echo $html;
Run Code Online (Sandbox Code Playgroud)

它不会删除< script >标记和内容.使用PhpQuery可以做到这一点吗?

最好的祝福,

html phpquery

5
推荐指数
2
解决办法
6745
查看次数

使用phpQuery选择特殊的XML标签

phpQuery是一个非常好的工具,它在过去解析了格式良好的XHTML和XML文档时帮助了我,但是我最近遇到了一个问题,试图选择在其标记名中有冒号的元素,如下所示:

<isc:thumb><![CDATA[http://example.com/foo_thumb.jpg]]></isc:thumb>
Run Code Online (Sandbox Code Playgroud)

我试图使用该pq()函数来选择所有这些元素:

foreach ( pq("isc:thumb") as $thumbnail ) {
  print pq( $thumbnail )->text();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这无济于事.如果我尝试另一个元素,比如标记名id,则结果会按预期弹出.

php xml phpquery

4
推荐指数
1
解决办法
1321
查看次数

PhpQuery如何工作?试图获取<title>标签的值

我是phpQuery的新手.我需要完成获取网页HTML TITLE标记内容的简单任务.在这种情况下,我试图获得"雅虎"的标题内容 应该是"雅虎".

我正在用phpQuery做这个,但它现在正在工作

// Testing phpQuery
$result = phpQuery::newDocumentFile($scraps['Scrap_yahoo']->getPage('http://www.yahoo.com','','off'))
            ->find('title');
echo $result->text();
Run Code Online (Sandbox Code Playgroud)

有人能给我一个如何实现这一目标的线索吗?

最好的祝福,

php tags title phpquery

4
推荐指数
1
解决办法
3379
查看次数

如何从列表(ul)标记生成项目数组?

从以下代码:

<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

如何使用phpQuery创建数组

array(
  'Coffee',
  'Tea',
  'Milk'
);
Run Code Online (Sandbox Code Playgroud)

这是我的第一次尝试,非常难看

    $doc = phpQuery::newDocumentHTML(...);
    $img = $doc->find('ol');
    $list = array();
    function attrsrc($i, $v){
        global $list;
        $list[] =  phpQuery::pq($v)->text();
    }
    phpQuery::each($img, 'attrsrc',  new CallbackParam, new CallbackParam);
    print_r($list);
Run Code Online (Sandbox Code Playgroud)

php phpquery

3
推荐指数
1
解决办法
1469
查看次数

从每个td获取值

我使用phpQuery从元素中获取数据.

我试图从第一个td,第二个tdhref每个链接获取值tr.

<table>
  <tr class="A2"> 
    <td> Text 1 </td>
    <td> Text 2 </td>
    <td> Text 3 </td>
    <td> <a href="linkhere1">  Text 131</a> </td>
  </tr>
  <tr class="A2"> 
    <td> Text 4 </td>
    <td> Text 5 </td>
    <td> Text 6 </td>
    <td> <a href="linkhere2">  Text 123213</a> </td>
  </tr>
  <tr class="A2"> 
    <td> Text 7 </td>
    <td> Text 8 </td>
    <td> Text 9 </td>
    <td> <a href="linkhere3.php">  Text 213213 </a> </td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这该怎么做?我试过了:

<?
require('phpQuery.php');

$file …
Run Code Online (Sandbox Code Playgroud)

php parsing phpquery

3
推荐指数
1
解决办法
5885
查看次数

标签 统计

phpquery ×10

php ×9

browser ×1

dom ×1

encoding ×1

html ×1

jquery ×1

parsing ×1

screen-scraping ×1

tags ×1

title ×1

web-scraping ×1

xml ×1