python入门学习:采集搜狗下拉联想词

技术 赵有财 3491℃ 0评论

最近在拿Python练手,单纯的学习又太枯燥,直接用来实现一些简单功能这样积极性高,效果会好点。
环境:Python3.3.5 + eclipse + pydev
先上代码:

#encoding:UTF-8
import urllib.request
import re
keyword = input("请输入查询的关键词:\n")
keyword = urllib.request.quote(keyword)
url = "http://w.sugg.sogou.com/sugg/ajaj_json.jsp?key="+keyword+"&type=web&ori=yes&pr=web&abtestid=1&ipn="
res = urllib.request.urlopen(url)
keylist = res.read()
keylist = keylist.decode('GBK')
rl = r'"(\D.*?)"'
rl = re.compile(rl)
word = re.findall(rl, keylist)
fileHandle = open ( 'keywords.txt', 'w' )
fileHandle.write("\n\n搜狗推荐关键词:")
for ky in word:
if len(ky) >= 4:
fileHandle.write("\n"+ky)
fileHandle.close()
print("采集完毕,请查看keywords.txt文件。。。")

1、首先程序接收输入的关键词
2、关键词进行URL转码
3、构造搜狗请求推荐联想词的URL
4、提交查询获取结果
5、对结果解码
6、正则表达式匹配提取关键词数组
7、建立文件
8、关键词数组遍历写入文件
第三点:使用Chrome浏览器》审查元素》Network查看ajaj_json.jsp的请求;
第六点:正则表达式还是不够的,学的不深,就简单粗暴了点,直接提取了“””的非数字的,就是说关键词不能是数字开头了,而且提取结果还要其他的内容,所以第8点的时候还要做过滤,大于4个字符的才会保存起来,3个字母的词有是被过滤掉的,像下面这样,还是完全没有问题的

window.sogou.sug([“欧莱雅”,[“欧莱雅官网”,”欧莱雅适合什么年龄”,”欧莱雅男士”,”欧莱雅眼霜”,”欧莱雅怎么样”,”欧莱雅集团”,”欧莱雅洗面奶”,”欧莱雅洗发水”,”欧莱雅柔肤水”,”欧莱雅多重防护隔离露”],[“0;0;0;0″,”1;0;0;0″,”2;0;0;0″,”3;0;0;0″,”4;0;0;0″,”5;0;0;0″,”6;0;0;0″,”7;0;0;0″,”8;0;0;0″,”9;0;0;0″],[“”,””,””,””,””,””,””,””,””,””],[“0″]],-1);

转载请注明:「知而不乎」 » python入门学习:采集搜狗下拉联想词

喜欢 (26)or分享 (0)
如果你觉得这篇文章还有价值,对你有帮助,请支持我继续更新 !捐赠本站

关注微信公众号

知而不乎微信公众号