Heim >Backend-Entwicklung >PHP-Tutorial >抓取搜狐视频中所有用户的专辑名

抓取搜狐视频中所有用户的专辑名

WBOY
WBOYOriginal
2016-07-25 08:47:031064Durchsuche
抓取搜狐视频中所有用户的专辑名。如果记录全部获取过来以后,可以方便的检索出相关关键词的视频专辑。但是由于用户数目太多,一个线程跑的话不知道要跑多少年。可以通过设置多表、ID分段来实现多通道的同时抓取。

可通过修改$user_id的开始和结束,来分段同时多通道。

sleep(1)仅为个人测试,可以修改
  1. header("Content-Type:text/html; Charset=UTF-8");
  2. set_time_limit(0);
  3. $col_title = ''; //标题
  4. $col_url = ''; //URL编号
  5. $user_id = 26; //起始抓取用户编号
  6. //MySQL预操作
  7. $mysqli = new mysqli("p:localhost", 'root', '', 'sohutv');
  8. if ($mysqli->connect_errno) {
  9. printf("Connect failed: %s\n", $mysqli->connect_error);
  10. exit();
  11. }
  12. $mysqli->set_charset("utf8");
  13. $sql = "INSERT INTO album (userid,title,url) VALUES(?,?,?)";
  14. $stmt = $mysqli->prepare($sql);
  15. $stmt->bind_param("sss",$user_id ,$col_title ,$col_url);
  16. //循环抓取
  17. while (true) {
  18. $url = "http://my.tv.sohu.com/user/a/playlist/ta/list.do?userId=".$user_id;
  19. $temp_html = file_get_contents($url);
  20. $temp_json = json_decode($temp_html);
  21. $column_no = $temp_json->{'data'}->{'count'};
  22. if ($column_no) {
  23. //var_dump($temp_json->{'data'});
  24. $temp_array = $temp_json->{'data'}->{'list'};
  25. for($i=0; $i {
  26. $temp_obj = $temp_array[$i];
  27. //var_dump($temp_obj);
  28. $col_title = $temp_obj->{'title'};
  29. $col_url = substr($temp_obj->{'url'}, 25, -6);
  30. $stmt->execute();
  31. }
  32. }
  33. //休眠1秒
  34. sleep(1);
  35. $user_id++;
  36. }
  37. /*
  38. 访问方式
  39. http://my.tv.sohu.com/pl/URL编号.shtml
  40. */
  41. ?>
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn