您的位置:首页 > 编程语言 > Python开发

Python3.x学习笔记[2]:百度联想词获取

2014-04-11 21:23 232 查看
学习内容来自百度贴吧的某培训机构一个名叫黄哥的视频,视频内容讲的是360搜索,经测试国内其他搜索引擎大都适用,

但在谷歌上试的时候发现不容易解析,问题出在URL格式中cp=后面代表的字符串长度还好想,但是gs_id后面就会变了,

比如这么个解析出来的json网址,https://www.google.com.hk/complete/search?client=hp&hl=zh-CN&gs_rn=39&gs_ri=hp&tok=LdwfQgWKHs1U3CunHQbV0A&cp=7&gs_id=5xe&q=sublime&xhr=t,红色部分就是发生变化的,黄色部分是检索词,在群里问过才知道,那些&符号后头都是参数,把这俩变化的参数部分删掉,就可以解析了

言归正传,获取百度联想词的代码如下:

# codeing=utf-8
import urllib.request
import re
#import random

# iplist=['5.98.86.141:8080','24.172.34.114:8181','27.145.145.105:8080']

list1 = ['百度', '清明', '锄禾', '期待', '钓鱼岛', 'django']
for i in list1:
# ip=random.choice(iplist)

gjc = urllib.request.quote(i)
url = 'http://suggestion.baidu.com/su?wd=' + gjc + \
'&json=1&p=3&sid=&cb=jQuery110205425511478908079_1396251136074&_=1396251136078'
headers1 = {'GET': url,
'Host': "suggestion.baidu.com",
'User-Agent': "Mozilla/5.0 (Windows NT 6.2; rv:28.0) Gecko/20100101 Firefox/28.0",
'Referer': "http://www.baidu.com/"}

# proxy_support=urllib.request.ProxyHandler({'http':'http://'+ip})
# opener=urllib.request.build_opener(proxy_support)
# urllib.request.install_opener(opener)

req = urllib.request.Request(url, headers=headers1)
html = urllib.request.urlopen(req).read().decode('gbk')
ss = re.findall('\[.*\]', html)
print(ss[0].strip('[').strip(']').replace('"', '').split(','))
有些部分被注释掉是因为没什么必要模拟浏览器和挂代理,但是视频里讲到了所以也加入进去了

运行结果如下:

['百度翻译', '百度网盘', '百度云', '百度杀毒', '百度卫士', '百度云盘登录', '百度网盘搜索', '百度糯米', '百度影音', '百度影音浏览器']

['清明节放假安排 2014', '清明时节雨纷纷', '清明果', '清明果艾糍', '清明诗会', '清明馃', '清明粑', '清明艾饺', '清明暗月', '清明饼']

['锄禾日当午', '锄禾日当午全诗', '锄禾日当午搞笑', '锄禾日当午 诗名', '锄禾日当午 清明上河图', '锄禾日当午作者', '锄禾日当午 汗滴禾下土', '锄禾日了几个人', '锄禾 古诗', '锄禾日当午 造血干细胞']

['期待恋爱', '期待 girls day', '期待爱', '期待在地下城邂逅有错吗', '期待度', '期待的英文', '期待爱情', '期待舞蹈教学', '期待你的回复 英文', '期待爱歌词']

['钓鱼岛屿最新事件', '钓鱼岛屿最新事件中国军方态度', '钓鱼岛屿最新事件开火', '钓鱼岛屿', '钓鱼岛屿事件中国败', '钓鱼岛屿事件', '钓鱼岛屿最新事件中国态度视频', '钓鱼岛上有什么', '钓鱼岛歌', '钓鱼岛屿最新事件新闻']

['django book', 'django 教程', 'django 安装', 'django cms', 'django 模板', 'django mysql', 'django admin', 'django 下载', 'django ajax', 'django session']

[Finished in 19.9s]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: