抓取搜狐视频中所有用户的专辑名
Libérer: 2016-07-25 08:47:03
original
1074 Les gens l'ont consulté
抓取搜狐视频中所有用户的专辑名。如果记录全部获取过来以后,可以方便的检索出相关关键词的视频专辑。但是由于用户数目太多,一个线程跑的话不知道要跑多少年。可以通过设置多表、ID分段来实现多通道的同时抓取。
可通过修改$user_id的开始和结束,来分段同时多通道。
sleep(1)仅为个人测试,可以修改
-
header("Content-Type:text/html; Charset=UTF-8");
- set_time_limit(0);
-
- $col_title = ''; //标题
- $col_url = ''; //URL编号
- $user_id = 26; //起始抓取用户编号
-
- //MySQL预操作
- $mysqli = new mysqli("p:localhost", 'root', '', 'sohutv');
- if ($mysqli->connect_errno) {
- printf("Connect failed: %s\n", $mysqli->connect_error);
- exit();
- }
- $mysqli->set_charset("utf8");
- $sql = "INSERT INTO album (userid,title,url) VALUES(?,?,?)";
- $stmt = $mysqli->prepare($sql);
- $stmt->bind_param("sss",$user_id ,$col_title ,$col_url);
-
-
-
- //循环抓取
- while (true) {
- $url = "http://my.tv.sohu.com/user/a/playlist/ta/list.do?userId=".$user_id;
- $temp_html = file_get_contents($url);
- $temp_json = json_decode($temp_html);
- $column_no = $temp_json->{'data'}->{'count'};
-
- if ($column_no) {
- //var_dump($temp_json->{'data'});
- $temp_array = $temp_json->{'data'}->{'list'};
-
- for($i=0; $i {
- $temp_obj = $temp_array[$i];
- //var_dump($temp_obj);
- $col_title = $temp_obj->{'title'};
- $col_url = substr($temp_obj->{'url'}, 25, -6);
-
- $stmt->execute();
- }
- }
- //休眠1秒
- sleep(1);
- $user_id++;
- }
-
- /*
- 访问方式
- http://my.tv.sohu.com/pl/URL编号.shtml
- */
-
- ?>
复制代码
|
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31