登录  /  注册
博主信息
博文 35
粉丝 0
评论 0
访问量 42990
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php-爬虫练习:抓取京东商品列表与详情-2019年10月18日
Victor的博客
原创
3338人浏览过

10月18日

使用PHP抓取函数,练习从京东商城获得商品列表和详情信息。

实例分析:

1、京东为开发者提供开放的接口平台(宙斯),获得授权的用户可以从平台接口中获得所有关心的数据,可参考这里:http://open.jd.com/home/home#/doc/common?listId=892

2、本例中没有使用授权,仅从单一的一个接口中获得商品列表和相关信息。小范围抓取数据。

3、抓取前准备:

  • a、从京东页面中找到某类产品的分类接口,在本例中,我设定的产品是“手机自营”

  • b、建立数据表,本例中为省事,直接打印到屏幕了

  • c、将课堂所讲的公共函数、配置方法和数据库操作方法,整合到一个抓取类中,本例中是CurlSpider

  • e、编写代码开始抓取数据,代码如下:(抓取数据太多,只取第一页)

实例
<?php

include 'spider.class.php';
//构造接口地址
$url = "https://search-x.jd.com/Search";
$params = array(
	"callback" => 'jQuery6105339',
	"area" => '5',
	"enc" => 'utf-8',
	"keyword" => '手机自营',
	"adType" => '7',
	"page" => '1',
	"ad_ids" => '291:19',
	"xtest" => 'new_search',
	"_" => '1571621477591',
);
$paramstring = http_build_query($params);

//实例化爬虫类
$curlObj = new curlSpider();
//获取接口内容
$content = $curlObj->curl_data($url, $paramstring);

//截取需要的内容
$substr = substr($content, 21, -2);
$result = json_decode($substr, true);

$flag = ['sku_id', 'ad_title', 'sku_price', 'vender_id', 'comment_num'];
// $filer = "/<([a-z]+)[^>]*>/i"; //正则过滤
$filer = "/(<([a-z]+)[^>]*>)|(<([\/][a-z]+)[^>]*>)/i";
echo '编号' . "\t" . '商品名称' . "\t" . '商品价格' . "\t" . '供应商编号' . "\t" . '评论数' . "<br>";
foreach ($result as $values) {
	foreach ($values as $key => $value) {
		if (in_array($key, $flag)) {
			$$key = preg_replace($filer, "", $value);
		}
	}
	echo $sku_id ."\t". $ad_title ."\t". '¥'. $sku_price ."\t". $vender_id ."\t". $comment_num . "<br>";
}

?>
运行实例 »
点击 "运行实例" 按钮查看在线实例

抓取到到原始数据如图(展开其中一项):

zhuquonelog.jpg

经过简单加工,提取需要的几个信息后,输出如下图:

spiderList.jpg

总结:

简单了解了PHP爬虫的编写过程,要想掌握,还需要学习很多知识;

初学主要关注的是前面接口分析、连接的设计和后期字符的处理。






批改状态:合格

老师批语:你是第一个交抓取成品作业的,非常不错。
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学