用户分析

用户分析

【php爬虫】百万级别知乎用户数据爬取与剖析

采集交流优采云 发表了文章 • 0 个评论 • 279 次浏览 • 2020-06-14 08:03 • 来自相关话题

  代码托管地址:
  文/Hector
  这次抓取了110万的用户数据php 网络爬虫 抓取数据,数据剖析结果如下:
  开发前的打算
  安装linux系统(Ubuntu14.04),在VMWare虚拟机下安装一个Ubuntu;
  安装PHP5.6或以上版本;
  安装curl、pcntl扩充。
  使用PHP的curl扩充抓取页面数据
  PHP的curl扩充是PHP支持的容许你与各类服务器使用各类类型的合同进行联接和通讯的库。
  本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登陆后的能够访问。当我们在浏览器的页面中点击一个用户头像链接步入用户个人中心页面的时侯,之所以还能看见用户的信息,是因为在点击链接的时侯,浏览器帮你将本地的cookie带上一同递交到新的页面,所以你才能步入到用户的个人中心页面。因此实现访问个人页面之前须要先获得用户的cookie信息,然后在每次curl恳求的时侯带上cookie信息。在获取cookie信息方面,我是用了自己的cookie,在页面中可以看见自己的cookie信息:
  一个个地复制,以"__utma=?;__utmb=?;"这样的方式组成一个cookie字符串。接下来就可以使用该cookie字符串来发送恳求。
  初始的示例:
   $url = ''; <br /> //此处mora-hu代表用户ID
$ch = curl_init($url); <br /> //初始化会话
curl_setopt($ch, CURLOPT_HEADER, 0); <br /> curl_setopt($ch, CURLOPT_COOKIE, $this-&gt;config_arr['user_cookie']); <br /> //设置请求COOKIE
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); <br /> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); <br /> //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); <br /> $result = curl_exec($ch); <br /> return $result; //抓取的结果
  运行里面的代码可以获得mora-hu用户的个人中心页面。利用该结果再使用正则表达式对页面进行处理,就能获取到姓名,性别等所须要抓取的信息。
  图片防盗链
  在对返回结果进行正则处理后输出个人信息的时侯,发现在页面中输出用户头像时难以打开。经过查阅资料获知,是因为知乎对图片做了防盗链处理。解决方案就是恳求图片的时侯在恳求头里伪造一个referer。
  在使用正则表达式获取到图片的链接以后,再发一次恳求,这时候带上图片恳求的来源,说明该恳求来自知乎网站的转发。具体事例如下:
  function getImg($url, $u_id){ <br /> if (file_exists('./images/' . $u_id . ".jpg")) <br /> { <br /> return "images/$u_id" . '.jpg'; } if (empty($url)) <br /> { <br /> return ''; <br /> }<br /> $context_options = array( <br /> 'http' =&gt;
array(<br /> 'header' =&gt; "Referer:"//带上referer参数
  )<br />  );<br /> $context = stream_context_create($context_options);<br /> $img = file_get_contents('http:' . $url, FALSE, $context);<br /> file_put_contents('./images/' . $u_id . ".jpg", $img);<br /> return "images/$u_id" . '.jpg';}
  爬取更多用户
  抓取了自己的个人信息后,就须要再访问用户的关注者和关注了的用户列表获取更多的用户信息。然后一层一层地访问。可以见到,在个人中心页面里,有两个链接如下:
  这里有两个链接,一个是关注了,另一个是关注者,以“关注了”的链接为例。用正则匹配去匹配到相应的链接,得到url以后用curl带上cookie再发一次恳求。抓取到用户关注了的用于列表页以后,可以得到下边的页面:
  分析页面的html结构php 网络爬虫 抓取数据,因为只要得到用户的信息,所以只须要框住的这一块的div内容,用户名都在这上面。可以看见,用户关注了的页面的url是:
  不同的用户的这个url几乎是一样的,不同的地方就在于用户名哪里。用正则匹配领到用户名列表,一个一个地拼url,然后再挨个发恳求(当然,一个一个是比较慢的,下面有解决方案,这个稍后会说到)。进入到新用户的页面然后,再重复前面的步骤,就这样不断循环,直到达到你所要的数据量。 查看全部

  代码托管地址:
  文/Hector
  这次抓取了110万的用户数据php 网络爬虫 抓取数据,数据剖析结果如下:
  开发前的打算
  安装linux系统(Ubuntu14.04),在VMWare虚拟机下安装一个Ubuntu;
  安装PHP5.6或以上版本;
  安装curl、pcntl扩充。
  使用PHP的curl扩充抓取页面数据
  PHP的curl扩充是PHP支持的容许你与各类服务器使用各类类型的合同进行联接和通讯的库。
  本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登陆后的能够访问。当我们在浏览器的页面中点击一个用户头像链接步入用户个人中心页面的时侯,之所以还能看见用户的信息,是因为在点击链接的时侯,浏览器帮你将本地的cookie带上一同递交到新的页面,所以你才能步入到用户的个人中心页面。因此实现访问个人页面之前须要先获得用户的cookie信息,然后在每次curl恳求的时侯带上cookie信息。在获取cookie信息方面,我是用了自己的cookie,在页面中可以看见自己的cookie信息:
  一个个地复制,以"__utma=?;__utmb=?;"这样的方式组成一个cookie字符串。接下来就可以使用该cookie字符串来发送恳求。
  初始的示例:
   $url = ''; <br /> //此处mora-hu代表用户ID
$ch = curl_init($url); <br /> //初始化会话
curl_setopt($ch, CURLOPT_HEADER, 0); <br /> curl_setopt($ch, CURLOPT_COOKIE, $this-&gt;config_arr['user_cookie']); <br /> //设置请求COOKIE
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); <br /> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); <br /> //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); <br /> $result = curl_exec($ch); <br /> return $result; //抓取的结果
  运行里面的代码可以获得mora-hu用户的个人中心页面。利用该结果再使用正则表达式对页面进行处理,就能获取到姓名,性别等所须要抓取的信息。
  图片防盗链
  在对返回结果进行正则处理后输出个人信息的时侯,发现在页面中输出用户头像时难以打开。经过查阅资料获知,是因为知乎对图片做了防盗链处理。解决方案就是恳求图片的时侯在恳求头里伪造一个referer。
  在使用正则表达式获取到图片的链接以后,再发一次恳求,这时候带上图片恳求的来源,说明该恳求来自知乎网站的转发。具体事例如下:
  function getImg($url, $u_id){ <br /> if (file_exists('./images/' . $u_id . ".jpg")) <br /> { <br /> return "images/$u_id" . '.jpg'; } if (empty($url)) <br /> { <br /> return ''; <br /> }<br /> $context_options = array( <br /> 'http' =&gt;
array(<br /> 'header' =&gt; "Referer:"//带上referer参数
  )<br />  );<br /> $context = stream_context_create($context_options);<br /> $img = file_get_contents('http:' . $url, FALSE, $context);<br /> file_put_contents('./images/' . $u_id . ".jpg", $img);<br /> return "images/$u_id" . '.jpg';}
  爬取更多用户
  抓取了自己的个人信息后,就须要再访问用户的关注者和关注了的用户列表获取更多的用户信息。然后一层一层地访问。可以见到,在个人中心页面里,有两个链接如下:
  这里有两个链接,一个是关注了,另一个是关注者,以“关注了”的链接为例。用正则匹配去匹配到相应的链接,得到url以后用curl带上cookie再发一次恳求。抓取到用户关注了的用于列表页以后,可以得到下边的页面:
  分析页面的html结构php 网络爬虫 抓取数据,因为只要得到用户的信息,所以只须要框住的这一块的div内容,用户名都在这上面。可以看见,用户关注了的页面的url是:
  不同的用户的这个url几乎是一样的,不同的地方就在于用户名哪里。用正则匹配领到用户名列表,一个一个地拼url,然后再挨个发恳求(当然,一个一个是比较慢的,下面有解决方案,这个稍后会说到)。进入到新用户的页面然后,再重复前面的步骤,就这样不断循环,直到达到你所要的数据量。

一款基于多线程爬虫的微博关注网剖析工具

采集交流优采云 发表了文章 • 0 个评论 • 219 次浏览 • 2020-05-04 08:05 • 来自相关话题

  
  由于网路延后和反爬机制的缘由,脚本运行速率仍比较慢,欢迎交流改进方案。
  简要介绍一下脚本的作用:
  分析器的基本思想和微博自带的推荐“你关注的XX也关注了YY”类似。分析器通过爬取用户关注列表,利用BFS深入到关注链的任意层,从而挖掘出好多你可能认识的人。同时通过简单的判断过滤掉大V用户和其他无效用户。
  作为一个事例,运行分析器微博 爬虫软件,你将获得一个包括如下信息的用户列表。Level是指关注链层次微博 爬虫软件,Level=1表示你直接关注了该用户,Level=2表示你直接关注的用户关注了该用户,依此类推。Score用于表征该用户与你的关系网的相关程度,你也可以自定义Score的各项因子权重。
  Nickname: 兴趣作祟的英雄
  Gender: 男
  Region: 上海 海淀区
  Followers: 638
  Tweets: 142
  Last Tweet: 2019-05-11 04:06
  Home Page:
  Relation Level: 3
  Relation Score: 90
  完整源码及更多相关信息见附件,也可在GitHub下载完整源码(trioKun/Weibo-Relation-Analysis-Spider)。
  下面给出分析器的核心部份~
  [Python] 纯文本查看 复制代码 查看全部

  
  由于网路延后和反爬机制的缘由,脚本运行速率仍比较慢,欢迎交流改进方案。
  简要介绍一下脚本的作用:
  分析器的基本思想和微博自带的推荐“你关注的XX也关注了YY”类似。分析器通过爬取用户关注列表,利用BFS深入到关注链的任意层,从而挖掘出好多你可能认识的人。同时通过简单的判断过滤掉大V用户和其他无效用户。
  作为一个事例,运行分析器微博 爬虫软件,你将获得一个包括如下信息的用户列表。Level是指关注链层次微博 爬虫软件,Level=1表示你直接关注了该用户,Level=2表示你直接关注的用户关注了该用户,依此类推。Score用于表征该用户与你的关系网的相关程度,你也可以自定义Score的各项因子权重。
  Nickname: 兴趣作祟的英雄
  Gender: 男
  Region: 上海 海淀区
  Followers: 638
  Tweets: 142
  Last Tweet: 2019-05-11 04:06
  Home Page:
  Relation Level: 3
  Relation Score: 90
  完整源码及更多相关信息见附件,也可在GitHub下载完整源码(trioKun/Weibo-Relation-Analysis-Spider)。
  下面给出分析器的核心部份~
  [Python] 纯文本查看 复制代码

【php爬虫】百万级别知乎用户数据爬取与剖析

采集交流优采云 发表了文章 • 0 个评论 • 279 次浏览 • 2020-06-14 08:03 • 来自相关话题

  代码托管地址:
  文/Hector
  这次抓取了110万的用户数据php 网络爬虫 抓取数据,数据剖析结果如下:
  开发前的打算
  安装linux系统(Ubuntu14.04),在VMWare虚拟机下安装一个Ubuntu;
  安装PHP5.6或以上版本;
  安装curl、pcntl扩充。
  使用PHP的curl扩充抓取页面数据
  PHP的curl扩充是PHP支持的容许你与各类服务器使用各类类型的合同进行联接和通讯的库。
  本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登陆后的能够访问。当我们在浏览器的页面中点击一个用户头像链接步入用户个人中心页面的时侯,之所以还能看见用户的信息,是因为在点击链接的时侯,浏览器帮你将本地的cookie带上一同递交到新的页面,所以你才能步入到用户的个人中心页面。因此实现访问个人页面之前须要先获得用户的cookie信息,然后在每次curl恳求的时侯带上cookie信息。在获取cookie信息方面,我是用了自己的cookie,在页面中可以看见自己的cookie信息:
  一个个地复制,以"__utma=?;__utmb=?;"这样的方式组成一个cookie字符串。接下来就可以使用该cookie字符串来发送恳求。
  初始的示例:
   $url = ''; <br /> //此处mora-hu代表用户ID
$ch = curl_init($url); <br /> //初始化会话
curl_setopt($ch, CURLOPT_HEADER, 0); <br /> curl_setopt($ch, CURLOPT_COOKIE, $this-&gt;config_arr['user_cookie']); <br /> //设置请求COOKIE
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); <br /> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); <br /> //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); <br /> $result = curl_exec($ch); <br /> return $result; //抓取的结果
  运行里面的代码可以获得mora-hu用户的个人中心页面。利用该结果再使用正则表达式对页面进行处理,就能获取到姓名,性别等所须要抓取的信息。
  图片防盗链
  在对返回结果进行正则处理后输出个人信息的时侯,发现在页面中输出用户头像时难以打开。经过查阅资料获知,是因为知乎对图片做了防盗链处理。解决方案就是恳求图片的时侯在恳求头里伪造一个referer。
  在使用正则表达式获取到图片的链接以后,再发一次恳求,这时候带上图片恳求的来源,说明该恳求来自知乎网站的转发。具体事例如下:
  function getImg($url, $u_id){ <br /> if (file_exists('./images/' . $u_id . ".jpg")) <br /> { <br /> return "images/$u_id" . '.jpg'; } if (empty($url)) <br /> { <br /> return ''; <br /> }<br /> $context_options = array( <br /> 'http' =&gt;
array(<br /> 'header' =&gt; "Referer:"//带上referer参数
  )<br />  );<br /> $context = stream_context_create($context_options);<br /> $img = file_get_contents('http:' . $url, FALSE, $context);<br /> file_put_contents('./images/' . $u_id . ".jpg", $img);<br /> return "images/$u_id" . '.jpg';}
  爬取更多用户
  抓取了自己的个人信息后,就须要再访问用户的关注者和关注了的用户列表获取更多的用户信息。然后一层一层地访问。可以见到,在个人中心页面里,有两个链接如下:
  这里有两个链接,一个是关注了,另一个是关注者,以“关注了”的链接为例。用正则匹配去匹配到相应的链接,得到url以后用curl带上cookie再发一次恳求。抓取到用户关注了的用于列表页以后,可以得到下边的页面:
  分析页面的html结构php 网络爬虫 抓取数据,因为只要得到用户的信息,所以只须要框住的这一块的div内容,用户名都在这上面。可以看见,用户关注了的页面的url是:
  不同的用户的这个url几乎是一样的,不同的地方就在于用户名哪里。用正则匹配领到用户名列表,一个一个地拼url,然后再挨个发恳求(当然,一个一个是比较慢的,下面有解决方案,这个稍后会说到)。进入到新用户的页面然后,再重复前面的步骤,就这样不断循环,直到达到你所要的数据量。 查看全部

  代码托管地址:
  文/Hector
  这次抓取了110万的用户数据php 网络爬虫 抓取数据,数据剖析结果如下:
  开发前的打算
  安装linux系统(Ubuntu14.04),在VMWare虚拟机下安装一个Ubuntu;
  安装PHP5.6或以上版本;
  安装curl、pcntl扩充。
  使用PHP的curl扩充抓取页面数据
  PHP的curl扩充是PHP支持的容许你与各类服务器使用各类类型的合同进行联接和通讯的库。
  本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登陆后的能够访问。当我们在浏览器的页面中点击一个用户头像链接步入用户个人中心页面的时侯,之所以还能看见用户的信息,是因为在点击链接的时侯,浏览器帮你将本地的cookie带上一同递交到新的页面,所以你才能步入到用户的个人中心页面。因此实现访问个人页面之前须要先获得用户的cookie信息,然后在每次curl恳求的时侯带上cookie信息。在获取cookie信息方面,我是用了自己的cookie,在页面中可以看见自己的cookie信息:
  一个个地复制,以"__utma=?;__utmb=?;"这样的方式组成一个cookie字符串。接下来就可以使用该cookie字符串来发送恳求。
  初始的示例:
   $url = ''; <br /> //此处mora-hu代表用户ID
$ch = curl_init($url); <br /> //初始化会话
curl_setopt($ch, CURLOPT_HEADER, 0); <br /> curl_setopt($ch, CURLOPT_COOKIE, $this-&gt;config_arr['user_cookie']); <br /> //设置请求COOKIE
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); <br /> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); <br /> //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); <br /> $result = curl_exec($ch); <br /> return $result; //抓取的结果
  运行里面的代码可以获得mora-hu用户的个人中心页面。利用该结果再使用正则表达式对页面进行处理,就能获取到姓名,性别等所须要抓取的信息。
  图片防盗链
  在对返回结果进行正则处理后输出个人信息的时侯,发现在页面中输出用户头像时难以打开。经过查阅资料获知,是因为知乎对图片做了防盗链处理。解决方案就是恳求图片的时侯在恳求头里伪造一个referer。
  在使用正则表达式获取到图片的链接以后,再发一次恳求,这时候带上图片恳求的来源,说明该恳求来自知乎网站的转发。具体事例如下:
  function getImg($url, $u_id){ <br /> if (file_exists('./images/' . $u_id . ".jpg")) <br /> { <br /> return "images/$u_id" . '.jpg'; } if (empty($url)) <br /> { <br /> return ''; <br /> }<br /> $context_options = array( <br /> 'http' =&gt;
array(<br /> 'header' =&gt; "Referer:"//带上referer参数
  )<br />  );<br /> $context = stream_context_create($context_options);<br /> $img = file_get_contents('http:' . $url, FALSE, $context);<br /> file_put_contents('./images/' . $u_id . ".jpg", $img);<br /> return "images/$u_id" . '.jpg';}
  爬取更多用户
  抓取了自己的个人信息后,就须要再访问用户的关注者和关注了的用户列表获取更多的用户信息。然后一层一层地访问。可以见到,在个人中心页面里,有两个链接如下:
  这里有两个链接,一个是关注了,另一个是关注者,以“关注了”的链接为例。用正则匹配去匹配到相应的链接,得到url以后用curl带上cookie再发一次恳求。抓取到用户关注了的用于列表页以后,可以得到下边的页面:
  分析页面的html结构php 网络爬虫 抓取数据,因为只要得到用户的信息,所以只须要框住的这一块的div内容,用户名都在这上面。可以看见,用户关注了的页面的url是:
  不同的用户的这个url几乎是一样的,不同的地方就在于用户名哪里。用正则匹配领到用户名列表,一个一个地拼url,然后再挨个发恳求(当然,一个一个是比较慢的,下面有解决方案,这个稍后会说到)。进入到新用户的页面然后,再重复前面的步骤,就这样不断循环,直到达到你所要的数据量。

一款基于多线程爬虫的微博关注网剖析工具

采集交流优采云 发表了文章 • 0 个评论 • 219 次浏览 • 2020-05-04 08:05 • 来自相关话题

  
  由于网路延后和反爬机制的缘由,脚本运行速率仍比较慢,欢迎交流改进方案。
  简要介绍一下脚本的作用:
  分析器的基本思想和微博自带的推荐“你关注的XX也关注了YY”类似。分析器通过爬取用户关注列表,利用BFS深入到关注链的任意层,从而挖掘出好多你可能认识的人。同时通过简单的判断过滤掉大V用户和其他无效用户。
  作为一个事例,运行分析器微博 爬虫软件,你将获得一个包括如下信息的用户列表。Level是指关注链层次微博 爬虫软件,Level=1表示你直接关注了该用户,Level=2表示你直接关注的用户关注了该用户,依此类推。Score用于表征该用户与你的关系网的相关程度,你也可以自定义Score的各项因子权重。
  Nickname: 兴趣作祟的英雄
  Gender: 男
  Region: 上海 海淀区
  Followers: 638
  Tweets: 142
  Last Tweet: 2019-05-11 04:06
  Home Page:
  Relation Level: 3
  Relation Score: 90
  完整源码及更多相关信息见附件,也可在GitHub下载完整源码(trioKun/Weibo-Relation-Analysis-Spider)。
  下面给出分析器的核心部份~
  [Python] 纯文本查看 复制代码 查看全部

  
  由于网路延后和反爬机制的缘由,脚本运行速率仍比较慢,欢迎交流改进方案。
  简要介绍一下脚本的作用:
  分析器的基本思想和微博自带的推荐“你关注的XX也关注了YY”类似。分析器通过爬取用户关注列表,利用BFS深入到关注链的任意层,从而挖掘出好多你可能认识的人。同时通过简单的判断过滤掉大V用户和其他无效用户。
  作为一个事例,运行分析器微博 爬虫软件,你将获得一个包括如下信息的用户列表。Level是指关注链层次微博 爬虫软件,Level=1表示你直接关注了该用户,Level=2表示你直接关注的用户关注了该用户,依此类推。Score用于表征该用户与你的关系网的相关程度,你也可以自定义Score的各项因子权重。
  Nickname: 兴趣作祟的英雄
  Gender: 男
  Region: 上海 海淀区
  Followers: 638
  Tweets: 142
  Last Tweet: 2019-05-11 04:06
  Home Page:
  Relation Level: 3
  Relation Score: 90
  完整源码及更多相关信息见附件,也可在GitHub下载完整源码(trioKun/Weibo-Relation-Analysis-Spider)。
  下面给出分析器的核心部份~
  [Python] 纯文本查看 复制代码

官方客服QQ群

微信人工客服

QQ人工客服


线