Python专题教程:抓取网站,模拟登陆,抓取动态网页 版本:v1.0 Crifan Li 摘要 本文是针对Python的中级开发人员,介绍如何用Python语言去实现抓取网站,模拟登陆, 抓取动态网页。其中主要涉及到,网络处理方面的模块(urllib,urllib2等),以及HTML 解析相关的模块(BeautifulSoup,json等)。 [提 本文提供多种格式供: 示] 在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP 下载(7zip压缩包) HTML HTMLs PDF CHM TXT RTF WEBHELP 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/ 2013-02-06 ┌─────────────────────────────────────────────────────────────────────────────┐ │修订历史 │ ├────────────────────────────┬──────────────────────────────────────┬─────────┤ │修订 1.0 │2013-02-06 │crl │ ├────────────────────────────┴──────────────────────────────────────┴─────────┤ │ 1. 把之前教程的地址整理过来 │ └─────────────────────────────────────────────────────────────────────────────┘ 版权 © 2013 Crifan, http://crifan.com 本文章遵从:署名-非商业性使用 2.5 中国大陆(CC BY-NC 2.5) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 目录 前言 1. 本文目的 2. 前提 1. 如何用Python实现网站抓取,模拟登陆,抓取动态网页 2. Python中的网络处理 3. Python中的HTMl解析 参考书目 前言 目录 1. 本文目的 2. 前提 1. 本文目的 本文目的在于,在已经了解了抓取网站,模拟登陆,抓取动态网页方面的逻辑后,如何用 Python语言去实现这部分的逻辑。 2. 前提 讨论如何用Python去实现,网站抓取,模拟登陆,抓取动态网页的话,前提是你需要对这 部分的逻辑已经比较清楚了。 如果不清楚,请先去参考: 详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等) 第 1 章 如何用Python实现网站抓取,模拟登陆,抓取动态网页 [提 相关旧帖 示] 【教程】抓取网并提取网页中所需要的信息之 Python版 【教程】模拟登陆网站之 Python版(内含两种版本的完整的可运行的代码) 其实,对于urllib等库,已经做得够好了,尤其是易用性上,已经很方便使用了。 比如,直接可以通过如下代码,即可获得从网页的地址,而得到其网页的源代码了 TODO:add code 但是呢,由于实际上,和网页抓取,网页模拟登陆等方面,需要用到cookie,以及其他 header参数,导致想要获得一个,功能强大且好用的,用于网络抓取方面的函数,则还是 需要额外花很多功夫的 而我后来就是在折腾网络抓取方面,前前后后,经过实际使用而积累出来很多这方面的经 验,最终,写了个相关的,功能更加强大一些,更加方便使用的函数的。主要是2个函数: getUrlResponse和getUrlRespHtml TODO:添加两个函数来自crifanLib的解释 TODO:再添加这两个函数的几种用法 TODO:再添加另外几个相关的函数的解释,包括downloadFile等函数 其实主要分两大方面: 一方面是把网站的内容抓取下来,涉及到和网络处理方面的模块 另外一方面是如何解析抓取下来的内容,即涉及到HTML解析等方面的模块 下面就来解释这两大方面相关的逻辑,以及如何用Python实现对应的这部分的功能。 第 2 章 Python中的网络处理 主要涉及的一些,和网络处理方面有关的模块是,urllib,urllib2等 [提 相关旧帖 示] 【整理】Python中用于解析Http数据包的模块/库 【已解决】Python中使用cookielib的FileCookieJar去save(),结果出错: NotImplementedError 【整理】Python中Cookie的处理:自动处理Cookie,保存为Cookie文件,从文件载入 Cookie TODO:整理对应的,带urllib和urllib2方面的帖子进来。 第 3 章 Python中的HTMl解析 [提 相关旧帖 示] BeautifulSoup模块简介 【教程】Python中第三方的用于解析HTML的库:BeautifulSoup 【总结】Python的第三方库BeautifulSoup的使用心得 【整理】关于Python中的html处理库函数BeautifulSoup使用注意事项 【已解决】用BeautifulSoup解析Html格式的Json字符串 【经验记录】Python中json.loads的时候出错->要注意要解码的Json字符的编码 【已解决】Python中json.loads解析包含\n的字符串会出错 【已解决】Python中使用json.loads解码字符串时出错:ValueError: Expecting property name: line 1 column 1 (char 1) 【已解决】Python中用json.loads解码字符串出错:ValueError: No JSON object could be decoded Python中和解析抓取的网站内容,即解析HTML,JSON等方面,相关的模块有, BeautifulSoup,json等 参考书目 [1] 【教程】抓取网并提取网页中所需要的信息之 Python版