码迷,mamicode.com
首页 > 其他好文 > 详细

1)⑥爬取腾讯经济相关的部分新闻

时间:2015-11-13 18:24:10      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

 1 __author__ = minmin
 2 #coding:utf-8
 3 import re,urllib,sgmllib
 4 
 5 #根据当前的主页url获取html
 6 def getHtml(url):
 7     page = urllib.urlopen(url)
 8     html = page.read()
 9     page.close()
10     return html
11 
12 
13 #html链接的标签是“a”,链接的属性是“href”,也就是要获得html中所有tag=a,attrs=href 值。
14 class URLPaser(sgmllib.SGMLParser):
15     def reset(self):
16         sgmllib.SGMLParser.reset(self)
17         self.urls = []
18 
19     def start_a(self,attrs):
20         href = [v for k,v in attrs if k == href]
21         if href:
22             self.urls.extend(href)
23 
24 #根据html获取想要的文章内容
25 def func(str):
26     #用正则表达式提取自己想要获取的内容
27      result = re.findall(r"<P style=\"TEXT-INDENT: 2em\">([^<>]*)<\/P>",getHtml(url),re.M)
28      artical =‘‘
29      for j in result:
30          if len(j)<>0:
31              j = j.replace("<STRONG>","   ")#去掉<STRONG>,换成"     "
32              j = j.replace("</STRONG>","   ")#去掉</STROGN>换成"     "
33              artical = artical + j + \n
34      return  artical
35 
36 
37 IParser = URLPaser()
38 socket = urllib.urlopen("http://finance.qq.com/")#打开主页
39 
40 IParser.feed(socket.read())#开始分析处理
41 
42 reg = http://finance.qq.com/a/.*#用来匹配符合条件的链接,使用正则表达式匹配
43 
44 pattern = re.compile(reg)
45 
46 i = 0
47 url2 = []
48 for url in IParser.urls:#链接都存在urls里
49 
50     if pattern.match(url):#匹配符合条件的链接
51         artical = func(url)#调用函数func
52         if url not in url2:#重复的url不再进行提取文章内容
53              url2.append(url)
54              print url
55              if len(artical)<>0:#如果文章捏弄内容不为空
56                    print artical
57                    i = i + 1
58                    #这个文件地址是文件保存地址,可根据要保存位置自己进行相应的更改
59                    f = open("qq/Economy/"+str(i) + .txt,a+)#把提取的内容按顺序保存在相应文件夹中
60                    f.write(artical)
61                    f.close()
62 
63 
64 #################################################################################################################
65 #注:本文借鉴http://www.jb51.net/article/52062.htm
66 #并在其基础上改进的 重复的url不再进行爬取,并把提取的内容写到指定的文件夹中
67 #################################################################################################################

 

1)⑥爬取腾讯经济相关的部分新闻

标签:

原文地址:http://www.cnblogs.com/minmsy/p/4962749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!