模温机参数详解
  • 首页
  • 模温机
  • 模温机缺点
  • 模温机批发
  • 模温机原理
  • 模温机作用
  • 模温机工作原理
  • 模温机报价
当前位置: 模温机参数详解 > 模温机作用 >

凯发娱乐国际官网_PHP爬虫:百万级别知乎用户数据爬取与说明

时间:2018-01-03 13:41来源:网络整理 作者:凯发娱乐国际官网 点击:884次
这次抓取了110万的用户数据,数据说明功效如下:

这次抓取了110万的用户数据,数据说明功效如下:

PHP爬虫:百万级别知乎用户数据爬取与声名

开拓前的筹备

安装Linux体系(Ubuntu14.04),在VMWare假造机下安装一个Ubuntu;

安装PHP5.6或以上版本;

安装MySQL5.5或以上版本;

安装curl、pcntl扩展。

行使PHP的curl扩展抓取页面数据

PHP的curl扩展是PHP支持的应承你与各类处事器行使各类范例的协议举办毗连和通讯的库。

本措施是抓取知乎的用户数据,要能会见用户小我私人页面,必要用户登录后的才气会见。当我们在赏识器的页面中点击一个用户头像链接进入用户小我私人中心页面 的时辰,之以是可以或许看到用户的信息,是由于在点击链接的时辰,赏识器帮你将当地的cookie带上一齐提交到新的页面,以是你就能进入到用户的小我私人中心页 面。因此实现会见小我私人页面之前必要先得到用户的cookie信息,然后在每次curl哀求的时辰带上cookie信息。在获取cookie信息方面,我是 用了本身的cookie,在页面中可以看到本身的cookie信息:

PHP爬虫:百万级别知乎用户数据爬取与声名

一个个地复制,以”__utma=?;__utmb=?;”这样的情势构成一个cookie字符串。接下来就可以行使该cookie字符串来发送哀求。

初始的示例:

$url = 'http://www.zhihu.com/people/mora-hu/about'; //此处mora-hu代表用户ID $ch = curl_init($url); //初始化会话 curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIE, $this->config_arr['user_cookie']);  //配置哀求COOKIE curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  //将curl_exec()获取的信息以文件流的情势返回,而不是直接输出。 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  $result = curl_exec($ch); return $result;  //抓取的功效 

运行上面的代码可以得到mora-hu用户的小我私人中心页面。操作该功效再行使正则表达式对页面举办处理赏罚,就能获取到姓名,性别等所必要抓取的信息。

图片防盗链

在对返回功效举办正则处理赏罚后输出小我私人书息的时辰,发此刻页面中输出用户头像时无法打开。颠末查阅资料得知,是由于知乎对图片做了防盗链处理赏罚。办理方案就是哀求图片的时辰在哀求头里伪造一个referer。

在行使正则表达式获取到图片的链接之后,再发一次哀求,这时辰带上图片哀求的来历,声名该哀求来自知乎网站的转发。具编制子如下:

function getImg($url, $u_id) {     if (file_exists('./images/' . $u_id . ".jpg"))     {         return "images/$u_id" . '.jpg';     }     if (empty($url))     {         return '';     }     $context_options = array(          'http' =>          array(             'header' => "Referer:"//带上referer参数     ) );      $context = stream_context_create($context_options);      $img = file_get_contents('http:' . $url, FALSE, $context);     file_put_contents('./images/' . $u_id . ".jpg", $img);     return "images/$u_id" . '.jpg'; } 

爬取更多用户

抓取了本身的小我私人书息后,就必要再见见用户的存眷者和存眷了的用户列表获取更多的用户信息。然后一层一层地会见。可以看到,在小我私人中心页面里,有两个链接如下:

PHP爬虫:百万级别知乎用户数据爬取与声名

这里有两个链接,一个是存眷了,另一个是存眷者,以“存眷了”的链接为例。用正则匹配去匹配到响应的链接,获得url之后用curl带上cookie再发一次哀求。抓取到用户存眷了的用于列表页之后,可以获得下面的页面:

PHP爬虫:百万级别知乎用户数据爬取与声名

说明页面的html布局,由于只要获得用户的信息,以是只必要框住的这一块的div内容,用户名都在这内里。可以看到,用户存眷了的页面的url是:

差异的用户的这个url险些是一样的,差异的处所就在于用户名哪里。用正则匹配拿到用户名列表,一个一个地拼url,然后再逐个发哀求(虽然,一个 一个是较量慢的,下面有办理方案,这个稍后会说到)。进入到新用户的页面之后,再一再上面的步调,就这样不绝轮回,直到到达你所要的数据量。

Linux统计文件数目

剧本跑了一段时刻后,必要看看毕竟获取了几多图片,当数据量较量大的时辰,打开文件夹查察图片数目就有点慢。剧本是在Linux情形下运行的,因此可以行使Linux的呼吁来统计文件数目:

ls -l | grep "^-" | wc -l

(责任编辑:凯发娱乐国际官网)
    共4页: 上一页1234下一页
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
  • 上一篇:劲胜股份:北京市德恒状师事宜所关于公司初次果真刊行股票并在创业板上市的状师事变陈诉
  • 下一篇:Linux体系下常用机能说明器材 top呼吁详解
  • 收藏
  • 挑错
  • 推荐
  • 打印
栏目列表
推荐内容
热点内容
  • 参数功率需留意! 选购AV功放七项
  • 直销胜耀瓶运送塑料链条:耐酸碱
  • 诺基亚Nokia 6具体参数设置先容
  • 利德盛:以德至盛 打造温控装备
  • IVB撒欢NAS云存储主板 C1007U+HM
  • 唐山建一个80平米的冷藏库多少钱
  • 【详解】机房情形监控体系
  • 2018上海国际涂布与卷材加工技能
  • 【OPPOFinder】最新报价
  • 高通Wear 1100可穿着装备处理赏

网站地图 | 模温机 | 模温机缺点 | 模温机批发 | 模温机原理 | 模温机作用 | 模温机工作原理 | 模温机报价

Copyright © 2018年 模温机参数详解 http://www.mowenji8.com 版权所有粤ICP备12073783号-1   

凯发娱乐国际官网_凯发娱乐国际官网平台_凯发娱乐国际官网登录网址