php抓取网页表格信息(查看豆瓣文档这是豆瓣开放的api中电影部分的文档返回数据)
优采云 发布时间: 2022-01-11 23:21php抓取网页表格信息(查看豆瓣文档这是豆瓣开放的api中电影部分的文档返回数据)
查看豆瓣api文档
这是豆瓣开放api的电影部分的文档
我们直接选择top250之后往下翻阅可以看到参数需求,有两个参数,start和count,分别代表请求开始的起始地址,这里是从0开始的,count代表请求的数目。
返回的数据包括我们输入的参数start和count,以及电影数据的总数和排行榜的名称。我们需要的关于电影的具体数据在主题下。
让我们在浏览器上测试一下,
从浏览器返回的结果可以看出,我们得到了想要的返回数据。接下来我们要做的就是解析返回的 json 数据,并从中获取我们想要的数据。
根据需要创建新的数据表
id 用作主索引,自动递增。
从网页中获取数据,然后解析格式
我们选择使用curl获取数据,然后分析返回的json数据。
header("Content-type:text/html;charset=utf-8");
$url = "https://api.douban.com/v2/movie/top250start=6&count=1";
$ch = curl_init();
//设置参数
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
$result = json_decode($result,true);
var_dump($result);
由于我还是新手,不知道怎么解析json数据最快,所以用了一个很笨很慢的方法,把它转成数组进行提取,所以如果有大神看到这个文章希望你能赐教。
问题总结
1、在多次测试中,遇到豆瓣的错误返回码,rate_limit_exceeded2 IP访问限速,然后好像是被禁止访问了,但是过了一个小时左右,测试可以通过了。
2、上面的代码在测试中插入数据库时发现错误,导致我在得到所有电影信息之前多次初始化i的值。
3、我不知道如何使用正则表达式,所以在提取主要内容的时候使用了一个比较麻烦的方法,但这也启发了我学习正则表达式。还是太瓜皮了,我会继续改进的。