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,红色部分就是发生变化的,黄色部分是检索词,在群里问过才知道,那些&符号后头都是参数,把这俩变化的参数部分删掉,就可以解析了
言归正传,获取百度联想词的代码如下:
运行结果如下:
['百度翻译', '百度网盘', '百度云', '百度杀毒', '百度卫士', '百度云盘登录', '百度网盘搜索', '百度糯米', '百度影音', '百度影音浏览器']
['清明节放假安排 2014', '清明时节雨纷纷', '清明果', '清明果艾糍', '清明诗会', '清明馃', '清明粑', '清明艾饺', '清明暗月', '清明饼']
['锄禾日当午', '锄禾日当午全诗', '锄禾日当午搞笑', '锄禾日当午 诗名', '锄禾日当午 清明上河图', '锄禾日当午作者', '锄禾日当午 汗滴禾下土', '锄禾日了几个人', '锄禾 古诗', '锄禾日当午 造血干细胞']
['期待恋爱', '期待 girls day', '期待爱', '期待在地下城邂逅有错吗', '期待度', '期待的英文', '期待爱情', '期待舞蹈教学', '期待你的回复 英文', '期待爱歌词']
['钓鱼岛屿最新事件', '钓鱼岛屿最新事件中国军方态度', '钓鱼岛屿最新事件开火', '钓鱼岛屿', '钓鱼岛屿事件中国败', '钓鱼岛屿事件', '钓鱼岛屿最新事件中国态度视频', '钓鱼岛上有什么', '钓鱼岛歌', '钓鱼岛屿最新事件新闻']
['django book', 'django 教程', 'django 安装', 'django cms', 'django 模板', 'django mysql', 'django admin', 'django 下载', 'django ajax', 'django session']
[Finished in 19.9s]
但在谷歌上试的时候发现不容易解析,问题出在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]
相关文章推荐
- Python3.x学习笔记[1]:2种简单爬虫获取京东价格
- 【Python学习笔记】面向对象编程:获取对象信息
- python学习笔记 获取对象信息
- 【python学习笔记】python2.x与python3.x版本中zip函数的不同
- python 学习笔记 12 -- 写一个脚本获取城市天气信息
- python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
- Python学习笔记:便捷数据获取
- 【Python】学习笔记——-7.4、获取对象信息
- python学习笔记:从网页上获取现在时间
- python3.x学习笔记1
- 【python学习笔记】pthon3.x中的文件读写操作
- Python学习笔记:由range获取列表
- python3.x 学习笔记 2
- Python学习笔记:网络数据获取
- Python3.X学习笔记
- python3.x学习笔记2
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
- Python3.x 爬虫学习笔记——判断网页的编码方式
- Python学习笔记 --- Python获取今天与昨天的13位时间戳
- 初学Python的学习笔记9----面向对象编程(获取对象信息、实例属性和类属性)、面向对象高级编程(使用__slots__、使用@property)