使用python抓取360搜索联想词

几乎所有的搜索引擎都提供联想词提示,这个小脚本其实功能性不大,只当作使用urllib2发http请求和如何使用代理来访问

参考文章

http://video.sina.com.cn/v/b/113293169-1631501663.html

http://obmem.info/?p=47

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#coding:utf-8
import urllib,urllib2,cookielib
import re,time
from random import choice

iplist = ['1.93.21.147:2222','42.96.129.66:80','59.57.15.71:80']#代理的列表,可以到网上搜,有好多
wordlist = ['生活','杨','彦','星']#想要搜索的关键词列表
for w in wordlist:
    ip = choice(iplist)
    word = urllib.quote(w)#使用urllib库中的quite方法将关键词进行编码
    url = r'http://sug.so.360.cn/suggest/word?callback=suggest_so&encodein=utf-8&encodeout=utf-8&word=%s'% word
    #用一个字典来存储header里的内容,这样做主要是为了不让360搜索来屏蔽机器人的采集
    #可以使用firebug等工具来查看
    header = {
            'GET':url,
            'Host':'sug.so.360.cn',
            'Referer':r'http://www.so.com/',
            'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36'
            }

    #以下是采用代理方式来访问360搜索
    proxy_support = urllib2.ProxyHandler({'http':'http://'+ip})
    opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)
    urllib2.install_opener(opener)

##    cookie_support= urllib2.HTTPCookieProcessor(cookielib.CookieJar())
##    opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
##    urllib2.install_opener(opener)
##    如果想要即要cookies又要代理,可以使用以下结构
##    opener = urllib2.build_opener(proxy_support, cookie_support, urllib2.HTTPHandler)
##
##    content = urllib2.urlopen('url').read()

req = urllib2.Request(url) #创建一个请求
#把header元素加入到请求中
for key in header:
req.add_header(key,header[key])

html = urllib2.urlopen(req).read()
ss = re.findall(""(.*?)"",html) #使用正则将联想词匹配出来
for item in ss:
print item
        time.sleep(3)

360