免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2829 | 回复: 0
打印 上一主题 下一主题

如何用python采集百度下拉框搜索数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-22 17:49 |只看该作者 |倒序浏览
如题,知道百度下拉框搜索的关键词数据是这样的URL:http://suggestion.baidu.com/su?wd={关键词},但使用requests库的get时,却返回为空,也伪装了UA,请问怎么处理?
我的代码如下:
  1. #coding=utf-8
  2. import requests

  3. def get_box(word):
  4.     url = 'http://suggestion.baidu.com/su?wd=%s&p=3&cb=window.bdsug.sug&from=superpage' % word
  5.     headers = {
  6.         'User-Agent': 'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+GTB7.1;+.NET+CLR+2.0.50727)'
  7.     }
  8.     r = requests.post(url, headers = headers)
  9.     print r.status_code
  10.     print r.content

  11. get_box('途牛')
复制代码
在网上搜索时发现了PHP版,但不了解,仅供参考:
  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  4. <link type="text/css" rel="stylesheet"

  5. href="http://zone.wooyun.org/themes/wooyun/css/style.css"/></head>
  6. <body>
  7. <?php
  8. /*
  9. another:VIP
  10. date:2013-2-26
  11. */
  12. $word=$_GET['word'];
  13. if ($word=="")
  14. {
  15. echo <<<EOF
  16. <form action="" method="get">
  17.   <p>关键词: <input type="text" name="word" /></p>
  18.   <input type="submit" value="采集" />
  19. </form>
  20. EOF;
  21. }
  22. else
  23. {

  24. $data=file_get_contents('http://suggestion.baidu.com/su?wd='.$word);
  25. $data=mb_convert_encoding($data, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5' );
  26. $data_temp=strpos($data,"x");
  27. $data=substr_replace($data,"",$data_temp,17);
  28. $data = trim($data,");");
  29. $data = trim($data,"{");
  30. $data=preg_replace("/q:.+?.e,/",'', $data);
  31. $data = str_replace("[","",$data);
  32. $data = str_replace("]","",$data);
  33. $data = "[".$data."]";
  34. $data = str_replace(",","},s:",$data);
  35. $data = str_replace("s:","{\"s\":",$data);//复杂的处理,以符合json格式
  36. $dc=json_decode($data);
  37. for ($n=0; $n<=9; $n++)
  38. {
  39. $wd[$n]=$dc[$n]->s;
  40. echo "</br>".$wd[$n];
  41. }

  42. }
  43. ?>
  44. </body>
  45. </html>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP