http://www.imooc.com/learn/563 Python开发简单爬虫(图形)
http://blog.csdn.net/column/details/why-bug.html Python爬虫入门教程(文字)
http://doc.scrapy.org/en/latest/intro/overview.html Scrapy官方文档
Python爬虫学习系列教程 崔庆才的连载
http://www.w3school.com.cn/xpath/index.asp XPath 教程
http://snipplr.com/all/tags/scrapy/ 分享代码片段
urllib.urlopen()
urllib.urlretrieve()
requests 负责连接网站
bs4 将网页变成结构化数据方便爬取
scrapy
urllib
urllib2
Scrapy = Scrach+Python,Scrach这个单词是抓取的意思
他是异步运行的,this enables you to do very fast crawls (sending multiple concurrent requests at the same time, in a fault-tolerant way
using extended CSS selectors and XPath expressions 解析HTML/XML
- 新建项目 (Project):新建一个新的爬虫项目
- 明确目标(Items):明确你想要抓取的目标
- 制作爬虫(Spider):制作爬虫开始爬取网页
- 存储内容(Pipeline):设计管道存储爬取内容
URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
URL的格式由三部分组成:
①第一部分是协议(或称为服务方式)
②第二部分是存有该资源的主机IP地址(有时也包括端口号)
③第三部分是主机资源的具体地址,如目录和文件名等
Scrapy 使用了 Twisted异步网络库来处理网络通讯
Scrapy爬虫抓取网站数据!!
https://www.coder4.com/archives/4411 Python抓取框架Scrapy快速入门教程 四号程序员
http://chattool.sinaapp.com/?p=1699 Scrapy系列教程(3)———Spider(爬虫核心,定义链接关系和网页信息抽取
https://doc.scrapy.org/en/1.1/intro/overview.html Scarpy官方文档
http://blog.csdn.net/iloveyin/article/category/2726217 Scrapy系列教程
http://snipplr.com/view/82246/scraped-item-to-mysql-in-scrapy/ Scraped item to mysql in scrapy
source ./bin/activate
scrapy startproject myproject
New Scrapy project ‘myproject’, using template directory ‘/usr/local/myenv/vnev/lib/python2.7/site-packages/scrapy/templates/project’, created in:
/usr/local/myenv/vnev/myproject
You can start your first spider with:
cd myproject
scrapy genspider example example.com
1、定义要抓取的数据
Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。
2、使用项目命令genspider创建Spider
scrapy genspider [-t template]
3、编写提取item数据的Spider
其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。
为了创建一个Spider,您必须继承 scrapy.Spider 类,且定义以下三个属性name、start_urls、parse()
start_urls可以是url列表,也可以是生成器函数
4、进行爬取
5、通过选择器提取数据Selectors
6、保存数据
选择器
Scrapy提取数据有自己的一套机制。它们被称作选择器(seletors),因为他们通过特定的 XPath 或者 CSS 表达式来“选择” HTML文件中的某个部分。
XPath 是一门用来在XML文件中选择节点的语言,也可以用在HTML上。 CSS 是一门将HTML文档样式化的语言。选择器由它定义,并与特定的HTML元素的样式相关连。
阿里云eqSpider
工程名 eq_list
爬虫名:eqSpider
‘eq_list.pipelines.SomePipeline’: 300,
管道的类名:EqListPipeline
eq_list
scrapy crawl eqSpider
从HTML源码中提取数据 相关库:BeautifulSoup lxml
Scrapy提取数据有自己的一套机制。它们被称作选择器(seletors),他们通过特定的 XPath 或者CSS 表达式来“选择” HTML文件中的某个部分。
XPATH 选择器 CSS选择器
CSS在底层你也是转换成XPATH选择器来执行的
Selectors选择器
Scrapy选择器构建于 lxml 库之上,这意味着它们在速度和解析准确性上非常相似。
Selector有四个基本的方法(点击相应的方法可以看到详细的API文档):
- xpath(): 传入xpath表达式,返回该表达式所对应的所有节点的selector list列表
- css(): 传入CSS表达式,返回该表达式所对应的所有节点的selector list列表.
- extract(): 序列化该节点为unicode字符串并返回list。
- re(): 根据传入的正则表达式对数据进行提取,返回unicode字符串list列表
sel.xpath(‘//div[@class=’title-and-desc’]’).extract()
sel.xpath(‘//@class).extract()
A Scrapy spider typically generates many dictionaries containing the data extracted from the page
字典 即ITEM
scrapy crawl quotes -o quotes.json
scrapy list 查看系统中的所有爬虫
Scrapy提供多种方便的通用spider供您继承使用,如:
Spider
CrawlSpider 爬取一般网站常用的spider
XMLFeedSpider
CSVFeedSpider
SitemapSpider