作业

  • Urllib、Urllib2的用法及异常处理
  • requests的简单应用
  • Xpath、CSS选择器使用
  • 正则表达式的简单应用
  • 对目标网站进行爬取分析,找到最优化的爬取策略。
  • 包装简历实际爬虫开发、内容提取工作经验1-2年以上。
  • 包含简历中实际爬虫项目。

项目需求

  • 首先我们随便找一个分类地址, http://iask.sina.com.cn/c/74.html 爱问知识人,打开之后可以看到一系列的问题列表。
  • 我们在这个页面需要获取的东西有:总的页码数,每一页的所有问题链接。

  • 接下来我们需要遍历所有的问题,来抓取每一个详情页面,提取问题,问题内容,回答者,回答时间,回答内容。

  • 最后,我们需要把这些内容存储到数据库中。

Python 性能优化

因为GIL的存在,Python很难充分利用多核CPU的优势。但是,可以通过内置的模块multiprocessing实现下面几种并行模式:

1、 多进程并行编程:对于CPU密集型的程序,可以使用multiprocessing的Process,Pool等封装好的类,通过多进程的方式实现并行计算。但是因为进程中的通信成本比较大,对于进程之间需要大量数据交互的程序效率未必有大的提高。

2、 多线程并行编程:对于IO密集型的程序,multiprocessing.dummy模块使用multiprocessing的接口封装threading,使得多线程编程也变得非常轻松(比如可以使用Pool的map接口,简洁高效)。 分布式:multiprocessing中的Managers类提供了可以在不同进程之共享数据的方式,可以在此基础上开发出分布式的程序。 不同的业务场景可以选择其中的一种或几种的组合实现程序性能的优化。