通过一关键字抓取百度的相关搜索关键字,用抓取的关键字继续第一步的操作,直至抓取10w个关键字,怎么实现?
发布时间:2016-08-16T15:53:17:手机请访问
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 |
#coding:utf-8 import requests import time import sys,re,requests reload(sys) sys.setdefaultencoding("utf-8") def append_list(l1, l2): ''' 一个辅助函数,作用是将一个列表合并到已知列表,并剔除已存在的元素 ''' for l in l2: if l not in l1: l1.append(l) return l1 def relatewords(words): ''' 主体函数 ''' for w in words: # 遍历初始关键词列表 if len(words) < 100: # 做个判断,如果关键词列表小于100个,可以修改为10W url = 'http://www.baidu.com/s?wd=%s&tn=baidurs2top' % w # 相关搜索的API,来自@吴星 r = requests.get(url) # 请求网页 c = r.content.decode('utf-8').split(',') # 得到网页内容,并且解码为unicode,以逗号分为列表 words = append_list(words, c) # 将得到的新关键词加入关键词列表,一方面为遍历,一方面作结果 print len(words) # 显示列表目前的个数,debug用,可取消 time.sleep(3) # 等待3秒,防屏蔽 else: # 如果列表大于1000,则不用遍历,已经得到结果 break # 跳出循环 return words # 返回最后列表 l = relatewords(words) for i in l: print i print len(l) |
您好,我怎么运行不起来呢?我想加一下你的QQ
5868037