我要抓取奥巴马每周的演讲内容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

  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就是每一篇文章的网址啦

  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后,同样的方法筛选内容。

  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/"):]

最后再保存并打印

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

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

python抓取的更多相关文章

  1. Python 抓取网页并提取信息(程序详解)

    最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...

  2. 使用 Python 抓取欧洲足球联赛数据

    Web Scraping在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤    数据的采集和获取    数据的清洗,抽取,变形和装载    数据的分析,探索和预测    ...

  3. python抓取性感尤物美女图

    由于是只用标准库,装了python3运行本代码就能下载到多多的美女图... 写出代码前面部分的时候,我意识到自己的函数设计错了,强忍继续把代码写完. 测试发现速度一般,200K左右的下载速度,也没有很 ...

  4. python抓取网页例子

    python抓取网页例子 最近在学习python,刚刚完成了一个网页抓取的例子,通过python抓取全世界所有的学校以及学院的数据,并存为xml文件.数据源是人人网. 因为刚学习python,写的代码 ...

  5. Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>

    Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...

  6. 如何用python抓取js生成的数据 - SegmentFault

    如何用python抓取js生成的数据 - SegmentFault 如何用python抓取js生成的数据 1赞 踩 收藏 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓 ...

  7. 关于python抓取google搜索结果的若干问题

    关于python抓取google搜索结果的若干问题     前一段时间一直在研究如何用python抓取搜索引擎结果,在实现的过程中遇到了很多的问题,我把我遇到的问题都记录下来,希望以后遇到同样问题的童 ...

  8. 用python抓取智联招聘信息并存入excel

    用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...

  9. python抓取月光博客的全部文章而且依照标题分词存入mongodb中

    猛击这里:python抓取月光博客的全部文章

  10. 使用python抓取58手机维修信息

    之前在ququ的博客上看到说 python 中的BeautifulSoup 挺好玩的,今天下午果断下载下来,看了下api,挺好用的,完了2把,不错. 晚上写了一个使用python抓取58手机维修信息的 ...

随机推荐

  1. Python20-Day03

    ##########文件操作相关########## 一.文件操作 文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来. 文件操作的流程: * ...

  2. Django_rest_framework_组件(authentication、permission、throttle)

    认证组件 说明 from rest_framework.authentication import BaseAuthentication class TestAuthentication(BaseAu ...

  3. 升级Xcode 10 后报错问题记录([CP] Copy Pods Resources)

    1.升级Xcode到Version 10.0 (10A255)后,运行已有项目,报如下错误: error: Multiple commands produce '/Users/galahad/Libr ...

  4. 调试存储过程:ORA-0131 Insufficient privileges

    http://www.cnblogs.com/empty01/p/5568250.html

  5. java第四次实验报告

    课程:Java程序与设计     班级:1352 姓 名:池彬宁  小组成员: 20135212池彬宁 20135208贺邦 学号:20135212 成绩:             指导教师:娄嘉鹏  ...

  6. iOS自学-混合编程

    OC调用swift,引入头文件 #improt "工程名字-swift.h" swift调用OC,在桥梁文件里面引入OC文件 的头文件 尽情混合编程吧...

  7. 2018软工实践—Beta冲刺(1)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Beta 冲鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调组内工作 调试服务器性能 展示GitHub当日代码/文档签入记录(组内 ...

  8. lintcode-513-完美平方

    513-完美平方 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n.你需要让平方数的个数最少. 样例 给出 n = 12, 返回 3 因为 12 = 4 ...

  9. Java 多线程之:偏向锁,轻量级锁,重量级锁

    一:java多线程互斥,和java多线程引入偏向锁和轻量级锁的原因? --->synchronized的重量级别的锁,就是在线程运行到该代码块的时候,让程序的运行级别从用户态切换到内核态,把所有 ...

  10. 统计Github项目信息

    项目总述 项目Github传送门 主要任务是从之前同项目的组员建的关系型数据库里提取出我们需要的GitHub的数据,并把结果保存到文件,以便之后插入到数据库. 从已经建立好的关系型数据库上多线程地读取 ...