安装内容[Python]第三方库-Scrapy入门使用
在写这篇文章之前,xxx已经写过了几篇关于改安装内容主题的文章,想要了解的朋友可以去翻一下之前的文章
Scrapy:
os:win7
python:2.7
首先是安装easy_install scrapy是的 很轻易就安装好了,难的是那么多的依赖包 http://doc.scrapy.org/en/0.16/intro/install.html 这里有win下的安装指点
如果其实编译不过,或者是要安装太多win的货色,就去 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载一个编译好的库安装吧
第一步:建立一个项目
scrapy startproject tutorial
scrapy.cfg:是配置文件
第二步:创立一个Item
在items.py中创立一个Item
#coding:utf8 from scrapy.item import Item, Field #Item是用来存储抓取的内容的,类似一个字典 class DmozItem(Item): """this is model of Item, likes ORM""" title = Field() link = Field() desc = Field()
第三部:第一个爬虫
爬虫类要继承 scrapy.spider.BaseSpider 并且要有三个属性:
name start_urls parse
怎么解析网页内容呢? Xpath 对这里要使用Xpath选择器来解析内容
W3cschool 有部份学习内容 W3cschool 有部份学习内容
创立一个dmoz_spider.py文件 位置是spiders目录下
#coding=utf8 from scrapy.spider import BaseSpider from scrapy.selector import HtmlXPathSelector from tutorial.items import DmozItem class DmozSpider(BaseSpider): """spider""" # name must be unique name = "dmoz" allowed_domains = ["dmoz.org"] start_urls = [ "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/" ] #overwrite parse method def parse(self, response): #filename = response.url.split("/")[-2] #open(filename, "wb").write(response.body) # use hxs = HtmlXPathSelector(response) #extract all ul tag's children tag li sites = hxs.select('//ul/li') items = [] for site in sites: item = DmozItem() item["title"] = site.select('a/text()').extract() item["link"] = site.select('a/@href').extract() item["desc"] = site.select('text()').extract() items.append(item) return items
在 scrapy.cfg地点的目录下 使用命令
scrapy crawl dmoz -o items.json -t json
此时主目录下多了一个items.json 就是抓取到的内容
最简单的抓取网页-解析网页-存储数据的爬虫就这样完成了。
引用:
文章结束给大家分享下程序员的一些笑话语录:
一条狗在街上闲逛,看见橱窗里一张告示:「招聘程序员。会编程,有团队精神,至少精通两种语言。均等机会。」
那条狗就进去申请,但是被拒绝了。
「我不能雇一条狗在公司里做事。」经理说。
狗不服气,指着告示上「均等机会」几字抗议。
经理没法,叹了口气,不屑地问道:「你会编程吗?」
那条狗默默地走到电脑前,编了个程序,运作准确。
「你有团队精神吗?」经理问。
那条狗掉头看了看门外,一大群野狗在外面虎视耽耽。
「我真的不能雇狗做这份工作。」经理气急败坏地说。
「就算会编程、有团队精神,但是我需要的雇员至少要能精通两种语言。」
那条狗抬头看着经理说:「喵-噢。」