用 Python 抓一些网上的文本

一年多以前,写过一篇《手动抓一些网上的文本资料》的文章,只是当时还不会用 Python。现在用 Python 重新抓一次。

大概的工作流程是:
a)获取网页的链接–> b)获取网页的内容

具体案例来说,《好公民报(Raia Mwema)》每一期都有一个单独的页面,这个页面又都包含这一期所有新闻作为一个单独页面的链接。所以具体的流程就变成了:

a)获取每一期页面的链接–> b)获取每一期的内容-> c)获取每一期里每条新闻的链接 -> d) 获取每一条新闻的内容

[code language=”python”]
#做出每一期页面的链接
toleoN="http://www.raiamwema.co.tz/toleo/"
toleoC=1
toleoList=[]
import urllib2
import time
while toleoC<=3:
s=str(toleoC)
s=toleoN+ "0"*(3-len(s))+s
toleoList.append(s)
toleoC+=1
#抓取这一期的内容#
while toleoList:
toleo=toleoList.pop(0)
print "approching issue "+str(toleoC-1)
response=urllib2.urlopen(toleo)
#收集这一期具体新闻的页面链接
line=response.readline()
makalaC=1
while line:
if line.count("toleo-page-title"):
pA=line.find(‘<a href="’)
pB=line[pA+1:].find(">")
makala=line[pA:pA+pB].replace(‘<a href="’,’http://www.raiamwema.co.tz’)+"\n"
print makala
#获取这条新闻的内容
try:
response_makala=urllib2.urlopen(makala)
makala_S=response_makala.read()
newfile=open(str(toleoC-1)+"_"+str(makalaC),"w")
newfile.write(makala_S)
newfile.close
makalaC+=1
time.sleep(3)
except urllib2.HTTPError:
pass
line=response.readline()
[/code]

 

ynshen