Python专题教程：抓取网站，模拟登陆，抓取动态网页
版本：v1.0
Crifan Li
摘要
本文是针对Python的中级开发人员，介绍如何用Python语言去实现抓取网站，模拟登陆，抓取动态网页。其中主要涉及到，网络处理方面的模块（urllib，urllib2等），以及HTML解析相关的模块（BeautifulSoup，json等）。
本文提供多种格式供：

HTML版本的在线地址为：
http://​www.crifan.com/​files/​doc/​docbook/​python_​topic_​web_​scrape/​release/​html/​python_​topic_​web_​scrape.html
有任何意见，建议，提交bug等，都欢迎去讨论组发帖讨论：
http://​www.crifan.com/​bbs/​categories/​python_​topic_​web_​scrape/
在线阅读	HTML  1	HTMLs  2	PDF  3	CHM  4	TXT  5	RTF  6	WEBHELP  7	
下载（7zip压缩包）	HTML  8	HTMLs  9	PDF  10	CHM  11	TXT  12	RTF  13	WEBHELP  14	
修订历史	
修订 1.0	2013-02-06	crl	
· 	把之前教程的地址整理过来
· 		
Python专题教程：抓取网站，模拟登陆，抓取动态网页:
Crifan Li
版本：v1.0
出版日期 2013-02-06
版权 © 2013 Crifan, http://​crifan.com

本文章遵从：署名-非商业性使用 2.5 中国大陆(CC BY-NC 2.5)15

目录
前言  	 # 

1. 本文目的  	 # 
2. 前提  	 # 
1. 如何用Python实现网站抓取，模拟登陆，抓取动态网页  	 # 
2. Python中的网络处理  	 # 
3. Python中的HTMl解析  	 # 
参考书目  	 # 

前言

1. 本文目的
本文目的在于，在已经了解了抓取网站，模拟登陆，抓取动态网页方面的逻辑后，如何用Python语言去实现这部分的逻辑。

2. 前提
讨论如何用Python去实现，网站抓取，模拟登陆，抓取动态网页的话，前提是你需要对这部分的逻辑已经比较清楚了。
如果不清楚，请先去参考：
详解抓取网站，模拟登陆，抓取动态网页的原理和实现（Python，C#等）  1

第 1 章 如何用Python实现网站抓取，模拟登陆，抓取动态网页
相关旧帖
【教程】抓取网并提取网页中所需要的信息 之 Python版  1
【教程】模拟登陆网站 之 Python版（内含两种版本的完整的可运行的代码）  2
其实，对于urllib等库，已经做得够好了，尤其是易用性上，已经很方便使用了。
比如，直接可以通过如下代码，即可获得从网页的地址，而得到其网页的源代码了
TODO：add code
但是呢，由于实际上，和网页抓取，网页模拟登陆等方面，需要用到cookie，以及其他header参数，导致想要获得一个，功能强大且好用的，用于网络抓取方面的函数，则还是需要额外花很多功夫的
而我后来就是在折腾网络抓取方面，前前后后，经过实际使用而积累出来很多这方面的经验，最终，写了个相关的，功能更加强大一些，更加方便使用的函数的。主要是2个函数：
getUrlResponse和getUrlRespHtml
TODO：添加两个函数来自crifanLib的解释
TODO：再添加这两个函数的几种用法
TODO：再添加另外几个相关的函数的解释，包括downloadFile等函数
其实主要分两大方面：
一方面是把网站的内容抓取下来，涉及到和网络处理方面的模块
另外一方面是如何解析抓取下来的内容，即涉及到HTML解析等方面的模块
下面就来解释这两大方面相关的逻辑，以及如何用Python实现对应的这部分的功能。

第 2 章 Python中的网络处理
主要涉及的一些，和网络处理方面有关的模块是，urllib，urllib2等
相关旧帖
【整理】Python中用于解析Http数据包的模块/库  1
【已解决】Python中使用cookielib的FileCookieJar去save()，结果出错：NotImplementedError  2
【整理】Python中Cookie的处理：自动处理Cookie，保存为Cookie文件，从文件载入Cookie  3
TODO：整理对应的，带urllib和urllib2方面的帖子进来。

第 3 章 Python中的HTMl解析
相关旧帖
BeautifulSoup模块简介  1
【教程】Python中第三方的用于解析HTML的库：BeautifulSoup  2
【总结】Python的第三方库BeautifulSoup的使用心得  3
【整理】关于Python中的html处理库函数BeautifulSoup使用注意事项  4
【已解决】用BeautifulSoup解析Html格式的Json字符串  5
【经验记录】Python中json.loads的时候出错->要注意要解码的Json字符的编码  6
【已解决】Python中json.loads解析包含\ n的字符串会出错  7
【已解决】Python中使用json.loads解码字符串时出错：ValueError: Expecting property name: line 1 column 1 (char 1)  8
【已解决】Python中用json.loads解码字符串出错：ValueError: No JSON object could be decoded  9
Python中和解析抓取的网站内容，即解析HTML，JSON等方面，相关的模块有，BeautifulSoup，json等

参考书目
[1] 【教程】抓取网并提取网页中所需要的信息 之 Python版1