php抓取网页数据实例(requiresPHP4Beta4+)$maxframes允许追踪的框架)

优采云 发布时间: 2021-12-07 16:04

  php抓取网页数据实例(requiresPHP4Beta4+)$maxframes允许追踪的框架)

  $error报告错误的位置(如果有)

  $response\ucode从服务器返回的响应代码

  $headers从服务器返回的头信息

  $MaxLength最大返回数据长度

  $read_uuTimeout读取操作超时(需要PHP 4 beta 4+)

  设置为0表示无超时

  $timed_uuoout如果读取操作超时,则此属性返回true(需要PHP 4 beta 4+)

  $maxframes允许跟踪的最大帧数

  $Status获取的HTTP的状态

  $temp\udir是web服务器可以写入的临时文件目录(/tmp)

  $curl_uuPath是curl二进制文件的目录。如果没有curl二进制文件,则将其设置为false

  这是演示

  副本代码如下:

  包括“Snoopy.class.php”

  $snoopy=新的snoopy

  $snoopy->proxy_uuhost=“”

  $snoopy->proxy\uport=“8080”

  $snoopy->agent=“(兼容;MSIE4.01;MSN2.5;AOL4.0;Windows 98)>”

  $snoopy->referer=“”

  $snoopy->cookies[“SessionID”]=238472834723489l

  $snoopy->cookies[“favoriteColor”]=“红色”

  $snoopy->rawheaders[“Pragma”]=“无缓存”

  $snoopy->maxredirs=2

  $snoopy->offsiteok=false

  $snoopy->expandlinks=false

  $snoopy->user=“joe”

  $snoopy->pass=“bloe”

  如果($snoopy->fetchtext(“”)

  {

  回声“

  ".htmlspecialchars($snoopy->results)."

  \n”

  }

  否则

  echo“获取文档时出错:“.$snoopy->错误”。\n”

  //////////////////////////////////////////////////////////////

  史努比的特点是“大”和“满”。抓取可以采集所有东西,这可以作为采集的第一步。接下来,你需要使用简单的html\U dom来仔细地选择所需的部分。当然,如果你特别擅长规则并且喜欢规则,你也可以使用规则来匹配和抓取

  Simple_html_dom实际上是一个dom解析过程。PHP还提供了一些解析方法,但这个Simple_html_dom可以说更专业。它是一个满足您需要的许多函数的类

  ////////////////////////////////////////////////////////////////

  //使用URL或文件名创建目标文档对象,即目标网页

  $html=文件获取html(“”)

  //$html=file_get_html('test.htm')

  //使用字符串作为目标页。您可以通过Snoopy获取该页,然后在此处获取以进行处理

  $myhtml=str_get_html('Hello!')

  //找到所有图片并返回一个数组

  foreach($html->find('img')作为$element)

  echo$element->src'

  ",

  //查找所有链接

  foreach($html->find('a')作为$element)

  echo$element->href

  ",

  find方法非常有用。通常,它返回一个收录对象的数组。在查找目标元素时,可以通过class或ID或其他属性获取目标字符串

  //通过目标div的class属性查找div。Find方法中的第二个参数是返回数组的编号。第一个参数从0开始

  $target_div=$html->find('div.targetclass',0)

  //检查结果是否符合您的要求。直接回显即可

  echo$target_div

  //关键是采集对象创建后必须销毁,否则PHP页面可能会“卡住”约30秒,具体取决于服务器的时间限制。销毁方法为:

  $html->clear()

  未结算($html)

  我认为simple_html_dom的优势在于它与JS一样易于控制采集。下面提供的下载包中有一本英文手册

  simplehtmldom_1_11/simplehtmldom/manual/manual.htm

  数组$e->GetAllAttribute()

  数组$e->attr

  字符串$e->getAttribute($name)

  字符串$e->attribute

  void$e->setAttribute($name,$value)

  void$value=$e->attribute

  bool$e->hasAttribute($name)

  boolisset($e->attribute)

  作废$e->removeAttribute($name)

  void$e->attribute=null

  元素$e->getElementById($id)

  混合$e->find(#$id),0)

  混合$e->getElementsById($id[,$index])

  混合$e->find(“#$id”[,int$index])

  元素$e->getElementByTagName($name)

  混合$e->find($name,0)

  混合$e->getElementsByTagName($name[,$index])

  混合$e->find($name[,int$index])

  元素$e->parentNode()

  元素$e->父元素()

  混合$e->childNodes([$index])

  混合$e->children([int$index])

  元素$e->firstChild()

  元素$e->第一个子元素()

  元素$e->lastChild()

  元素$e->最后一个子元素()

  元素$e->nextSibling()

  元素$e->下一个兄弟姐妹()

  元素$e->上一个同级元素()

  元素$e->prev_同级()

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线