一. 基本概念 1. Selector是一个可独立使用的模块,我们可以用Selector类来构建一个选择器对象,然后调用它的相关方法如xpaht(), css()等来提取数据,如下 from scrapy import Selector body= '<html><head><title>Hello World</title></head><body></body> </ html> ’ selector…
1.创建对象 Selector类的实现位于scrapy.selector模块,创建Selector对象的时候,可以将页面的Html文档字符串传递给Selector构造器方法 2.选中数据 调用Selector对象的xpath或者css方法(传入xpath或者css选择器表达式),可以选中文档中的某一部分 xpath和css方法返回的是一个SelectorList对象,其中包含每个被选中部分对应的Selector对象,SelectorList支持列表接口,可以使用for循环迭代访问其中的每一个Se…
Beautiful Soup 是一个HTML/XML 的解析器,主要用于解析和提取 HTML/XML 数据. 它基于 HTML DOM 的,会载入整个文档,解析整个 DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml. BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器.Python标准库中的HTML解析器,也支持 lxml 的 XML解析器.虽然说BeautifulSoup4 简单容易比较上手,但是匹配效率还是远远不如正则以及xpath的,…
从页面中提取数据的核心技术是HTTP文本解析,在python中常用的模块处理: BeautifulSoup  非常流行的解析库,API简单,但解析的速度慢. lxml 是一套使用c语言编写的xml解析库,解析速度快,API相对比较复杂. Scrapy中的Selector类是基于lxml库建立的,并且简化了API接口.在使用的过程中先使用xpath或者css选择器选中页面中要提取的数据,然后进行提取. 提取数据 调用Selector或者SelectList对象的以下几种方法可将选中的内容进行提取…
一.概述: 在页面含有少量链接时,使用selector来提取信息就可以,但如果链接特别多时,就需要用LinkExtractor来提取. 二.LinkExtractor构造器的各个参数: 1.allow  接收一个正则表达式或一个正则表达式列表,提取绝对url与正则表达式匹配的链接,如果改参数为空,就提取全部的链接. 2.deny 与allow刚好相反,排除绝对URL与正则表达式相匹配的链接. 3.allow_domains 接收一个域名或一个域名列表,提取到指定域的链接 4.deny_domai…
scrapy数据的持久化(将数据保存到数据库) 一.建立项目 1.scrapy startproject dushu 2.进入项目 cd dushu 执行:scrapy genspider -t crawl read www.dushu.com 查看:read.py class ReadSpider(CrawlSpider): name = 'read' allowed_domains = ['www.dushu.com'] start_urls = ['https://www.dushu.co…
scrapy的Selector选择器其实也可以用来解析,今天主要总结下css和xpath的用法,其实我个人最喜欢用css 以慕课网嵩天老师教程中的一个网页为例,python123.io/ws/demo.html 解析是提取信息的一种手段,主要提取的信息包括:标签节点.属性.文本,下面从这三个方面来分别说明 一.提取标签节点 response = ”<html><head><title>This is a python demo page</title><…
在python语言中,用丰富的函数库来从文件中提取数据,这篇博客讲解怎么从csv, xls文件中得到想要的数据. 点击下载数据文件http://seanlahman.com/files/database/lahman-csv_2015-01-24.zip 这个一个美国棒球比赛的统计数据解压文件夹,我们选取AwardsManagers.csv来练习 #-*- coding:utf-8 -*- import csv DIR = 'data/' fname = 'AwardsManagers.csv'…
这篇文章主要介绍了Python中用format函数格式化字符串的用法,格式化字符串是Python学习当中的基础知识,本文主要针对Python2.7.x版本,需要的朋友可以参考下   自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱.语法 它通过{}和:来代替%.“映射”示例 通过位置 ? 1 2 3 4 5 6 In [1]: '{0},{1}'.format('kz…
mysql 导出表结构和表数据 mysqldump用法 命令行下具体用法如下:   mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 导出整个数据库结构和数据mysqldump -h localhost -uroot -p123456 database > dump.sql 导出单个数据表结构和数据mysqldump -h localhost -uroot -p123456  database table > dump.sql 导出整个数据库结构(不包含数据)…