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

  • 时间:
  • 浏览: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入门学习:使用http.cookiejar生产Cookie模拟用户登陆

有的网站,特别像社交网站,需要登陆才能抓取到网站的数据,那么光模拟浏览器请求网站内容是还不够了,还需要能够模拟用户登陆网站,然后保留登陆状态,获取网站相关的内容。想要成功模拟真

2018-05-17

Python入门学习:应用random函数随机生成HTTP请求headers信息

为什么抓取会收到限制要采集百度数据,查询关键词排名等,因为短时间内发出太多的请求,会受到百度局域网异常访问屏蔽策略的限制。出现以下错误信息:要突破这样的限制,必须伪装成为真正的

2018-05-17

Python入门学习:模拟浏览器查询百度获取结果

本来学习Python就是想和SEO相关的,所以就在学习的时候把一下常见的需求引进来,这样动力大,学起来就快一些,深刻一些了。SEO最常用的的恐怕就是查询关键词的排名了,手动查询

2018-05-17

Python入门学习:Beautiful Soup 4检查页面TDKH标签

环境:Python3.3.5beautifulsoup4-4.3.2Eclipse+PyDev利用BeautifulSoup4能够很方便的提取页面的标签,那我就来写一个检查页面

2018-05-17