网络中不乏优秀的scrapy教程,写这个系列更多的是为了让自己坚持写技术博客。这是scrapy官方教程,本系列就是建立在此基础上的。
Installation
对于python开发,作者喜欢在Linux下进行,开发环境是vm ware + ubuntu16.04 ,在windows下开发总是磕磕碰碰的,要解决很多`不必要的问题`。command line: pip3 install scrapy 。 如果你用的是python2,则用pip install scrapy。关于安装不想说太多,如果遇到问题,请自行google。
查看scrapy版本
hobit@ubuntu:~$ scrapy version
Scrapy 1.2.2
哈哈,我有强迫症,我喜欢使用the lastest version. 安装完成了,有种跃跃欲试的感觉了,scrapy is a high-level python framework.对于这种高层框架,意味着很多底层的工作,scrapy 已经帮我们完成了,那么接下来我们就可以来尝试使用了。
Create a Project
hobit@ubuntu:~$ scrapy startproject myspider
小试牛刀
为了快速建立信心,我们可以先按官方教程在myspider/spiders目录下执行: vim quotes_spider.py(关于编辑器,随你喜欢),将以下代码address进入quotes_spider.py.
这段代码的解释我们放在后面进行。
Run our first spider
进入我们工程的最顶层目录,也就是/Path/to/myspider下执行以下命令:
scrapy crawl quotes
ok,执行完成后,进入spiders目录下,如果能开到新生成的两个html文件,那么我们的spider就跑成功了。
scrapy下载中间件
User Agent: 用户代理,是浏览器用来告诉web server 浏览器是谁的,然后web server根据浏览器的不同发送不同的现实内容。
XPATH
For the following HTML document:
ExampleSO
The xpath query/html/body//a/@href(or simply//a/@href) will return:
http://www.example.com
http://www.stackoverflow.com
To select a specific instance use/html/body//a[N]/@href,
$ /html/body//a[2]/@href
http://www.stackoverflow.com
To test for strings contained in the attribute and return the attribute itself place the check on the tag not on the attribute:
$ /html/body//a[contains(@href,'example')]/@href
http://www.example.com
Mixing the two:
$ /html/body//a[contains(@href,'com')][2]/@href
http://www.stackoverflow.com
Mongodb:
Mongodb 是NoSQL 型数据库(NoSQL就是Not Only SQL),是一种非关系型数据库,非常适用于客户服务器编程。
一个mongodb中可以建立多个数据库,mongodb的默认数据库为“db”,该数据库存储在data目录中。