python抓取

本文介绍了一种使用Python批量爬取奥巴马每周演讲内容的方法。通过分析网页源代码,利用Python的urllib模块获取指定网站上的链接,并进一步下载这些链接指向的具体演讲内容。

我要抓取奥巴马每周的演讲内容http://www.putclub.com/html/radio/VOA/presidentspeech/index.html

如果手动提取,就需要一个个点进去,再复制保存,非常麻烦。

那有没有一步到位的方法呢,用python这种强大的语言就能快速实现。

首先我们看看这网页的源码

可以发现,我们要的信息就在这样一小条url中。

更具体点说,就是我们要遍历每个类似http://www.putclub.com/html/radio/VOA/presidentspeech/2014/0928/91326.html这样的网址,而这网址需要从上面的网页中提取。

 

好,开始写代码

首先打开这个目录页,保存在content

 

[python]  view plain  copy
 
  1. import sys,urllib  
  2. url="http://www.putclub.com/html/radio/VOA/presidentspeech/index.html"  
  3. wp = urllib.urlopen(url)  
  4. print "start download..."  
  5. content = wp.read()  

下面要提取出每一篇演讲的内容

 

具体思路是搜索“center_box”之后,每个“href=”和“target”之间的内容。为什么是这两个之间,请看网页源码。

得到的就是每一篇的url,再在前面加上www.putclub.com就是每一篇文章的网址啦

 

[html]  view plain  copy
 
  1. print content.count("center_box")  
  2. index =  content.find("center_box")  
  3. content=content[content.find("center_box")+1:]  
  4. content=content[content.find("href=")+7:content.find("target")-2]  
  5. filename = content  
  6. url ="http://www.putclub.com/"+content  
  7. print content  
  8. print url  
  9. wp = urllib.urlopen(url)  
  10. print "start download..."  
  11. content = wp.read()  

有了文章内容的url后,同样的方法筛选内容。

 

 

[python]  view plain  copy
 
  1. #print content  
  2. print content.count("<div class=\"content\"")  
  3. #content = content[content.find("<div class=\"content\""):]  
  4. content = content[content.find("<!--info end------->"):]  
  5. content = content[:content.find("<div class=\"dede_pages\"")-1]  
  6. filename = filename[filename.find("presidentspeech")+len("presidentspeech/"):]  

最后再保存并打印

 

 

[python]  view plain  copy
 
  1. filename = filename.replace('/',"-",filename.count("/"))  
  2. fp = open(filename,"w+")  
  3. fp.write(content)  
  4. fp.close()  
  5. print content  


OK,大功告成!保存成.pyw文件,以后只需双击就直接保存下了obama每周演讲内容~

转载于:https://www.cnblogs.com/babyfei/p/6992235.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值