python爬虫用什么软件写_用Python写爬虫,用什么方式、框架比较好?

Python 提供了一些很不错的网页爬虫工具框架,既能爬取数据,又能获取和清洗数据,常用的模块库:

Requests 人性化的网络模块

Requests 是 Python 官方推荐的 HTTP 网络编程模块库。Python 标准库中的 Urllib2 模块虽然也可以完成大多数 HTTP 网络编程功能,但是它的 API 接口不友好,非常复杂,需要进行大量的工作,甚至包括各种方法覆盖来完成最简单的任务。

尽管可以通过标准库中的 Urllib2 模块来操作网页表单,但有些时候更友好的代码可以让工作更轻松。

Requests 模块库在处理复杂 HTTP 命令、Cookies 等方面更为高效,Requests 模块库的设计师 Kenneth Reitz 对 Python 核心工具的评价是:

Python 标准 Urllib2 模块提供了用户所需要的绝大多数 HTTP 功能,但是其 API 却很差。它的创建是用于不同时间及不同网页的,即使执行一个简单的任务也需要大量的工作(甚至重写方法等)。

事情并不应该如此,至少在 Python 中不应如此。

Reuqests 模块库简洁好用,其宣传口号就是:让 HTTP 服务人类。

Requests 模块库允许用户发送人性化的 HTTP 请求命令,无需手动为 URL 添加查询字符串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100%自动化的,由 Requests 模块库内部的 Urllib3 子模块完成。

下面以常见的网站模拟登录案例来说明 Requests 模块库的基本功能,代码很简单,只有几行:

re = requests.session()

data = {"user":"用户名","passdw":"密码"}

res = re.post("http://www.xxx.com/index.php?action=login",data)

htm = re.get("http://www.xxx.com/archives/101")

只用 4 行代码即可完成全部的模拟登录工作。

Scrapy 网页爬虫框架

网页爬虫是在网页中抓取数据的程序,使用它能够抓取特定网页的 HTML 数据。虽然可以利用模块库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间。Scrapy 是一个使用 Python 编写的、轻量级的网页爬虫框架,简单轻巧,并且使用起来非常的方便。

从严格意义上来说,Scrapy 已经不是一个网络模块库,而是一套完整的网页爬虫框架,或者说是一套网站下载系统,它可以把一些中小型网站完整地抓取下来。

Scrapy 是使用 Python 语言开发的一个快速、高层次的网页抓取框架,用于抓取 Web 站点并从页面中提取结构化的数据。Scrapy 用途广泛,可以用于数据挖掘、监测和自动化测试。

Scrapy 吸引人的地方在于它是一个框架,任何人都可以根据需求方便地修改。它也提供了多种类型爬虫的基类,如 BaseSpider、Sitemap 等,最新版本又提供了 Web 2.0 爬虫的支持。

如图 1 所示是 Scrapy 的内部结构图,如图 2 所示是 Scrapy 网站首页截图。

Beautiful Soup 4

Beautiful Soup 的意思是“可口的汤羹”、“甲鱼汤”,它是一套 Python 模块库,用于网页的文本分析、数据清洗。

re 正则表达式

正则表达式是处理字符串、文本信息的神器。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作,正则表达式的概念最初是由 UNIX 中的工具软件(例如 sed 和 grep)普及的。

正则表达式原本并不是 Python 语言标准库,Python 语言自 1.5 版本起增加了 re 模块,它提供 Perl 风格的正则表达式模式,re 模块使 Python 语言拥有全部的正则表达式功能。

正则表达式是用于处理字符串的强大工具,拥有自己独特的语法及一个独立的处理引擎,效率上可能不及字符串自带的方法,但功能十分强大。

如果想了解更多关于正则表达式的内容,re 模块的 Python 官方文档是一个非常好的资源。

摘自一本我正在翻的书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值