urllib采集百度知道搜索结果

|
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
|
#-*-encoding:utf8-*-##用处:采集百度知道搜索结果##需求来源:某SEO群友##代码使用简单介绍:在k1.txt写入关键词,一行一个。##while i<* 这个看百度知道搜索结果中pn=后面的值 比如pn=750 就填750,一页结果是10个,自己点到多少页然后把数字放进这里。##保存文件是自动保存成text.txt,运行一次自行复制内容到其他位置,或者用excel去重。import urllib2import urllibimport reimport timei = -10while i<30: #页数自选 i += 10 kw_list = [k.decode("GBK") for k in open("k1.txt")] #从k1.txt导入关键词,应该有涉及到编码处理。 for k in kw_list: kw = k.encode("utf8") #同样是编码处理 gjc = urllib.quote(kw) url='http://zhidao.baidu.com/search?word=' + gjc + '&ie=utf-8&site=-1&sites=0&date=0&pn=' + str(i)#把等号右边的网址赋值给url html=urllib2.urlopen(url).read() #html随意取名 等号后面的动作是打开源代码页面,并阅读 ss = re.findall('target="_blank" class="ti">(.*?)</a>\s*</dt>',html) #正则提取百度知道搜索结果标题 time.sleep(5) #定时,括号内是秒数,自己试,不想要定时的,可以直接删了这句或者在前面加个# for title in ss: print re.sub('<(.*?)em>','',title) #将搜索结果中的<em>、</em>给替换掉 #下面是保存,分别是打开文档,写入并换行,然后关闭。 f = open("text.txt",'a') f.writelines(re.sub('<(.*?)em>','',title) + "\n") f.close() |

浙公网安备 33010602011771号