在你爬取网页的时候,最普遍的事情就是在页面源码中提取需要的数据,我们有几个库可以帮你完成这个任务:
- BeautifulSoup是python中一个非常流行的抓取库,
它还能合理的处理错误格式的标签,但是有一个唯一缺点就是:它运行很慢。 - lxml是一个基于ElementTree的XML解析库(同时还能解析HTML),
不过lxml并不是Python标准库
生活心情
在你爬取网页的时候,最普遍的事情就是在页面源码中提取需要的数据,我们有几个库可以帮你完成这个任务:
Spider是爬虫框架的核心,爬取流程如下:
start_urls
指定,调用start_requests()
产生Request
对象,然后注册parse
方法作为回调Item
对象,Request
对象或它们的迭代对象。Request
对象还会包含回调函数,之后Scrapy下载完后会被这里注册的回调函数处理。尽管这个流程适合于所有的蜘蛛,但是Scrapy里面为不同的使用目的实现了一些常见的Spider。下面我们把它们列出来。
文件传输协议(File Transfer Protocol,缩写:FTP)是TCP/IP协议组中的协议之一。它属于网络传输协议的应用层。FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。常用的FTP客户端有FileZilla、WinSCP等。
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,
信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取(更确切来说,网络抓取)所设计的,
也可以应用在获取API所返回的数据(比如Web Services)或者通用的网络爬虫。
Scrapy也能帮你实现高阶的爬虫框架,比如爬取时的网站认证、内容的分析处理、重复抓取、分布式爬取等等很复杂的事。
前面一篇介绍了SQLAlchemy的入门,这里我讲讲它的进阶用法,其实主要是通过它来轻松实现一些复杂查询。
SQLAlchemy中的映射关系有四种,分别是一对多、多对一、一对一、多对多。接下来我将详细说明怎样去定义这四种关系,
然后再演示怎样通过这四种关系完成复杂的查询和更新。
SQLAlchemy是Python世界中最广泛使用的ORM工具之一,它采用了类似于Java里Hibernate的数据映射模型,
而不是其他ORM框架采用的Active Record
模型。
SQLAlchemy分为两个部分,一个是最常用的ORM对象映射,另一个是核心的SQL expression
。
第一个很好理解,纯粹的ORM,后面这个不是ORM,而是DBAPI的封装,通过一些sql表达式来避免了直接写sql。
使用SQLAlchemy
则可以分为三种方式。
.htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法,即在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。