目標:使用scrapy抓取豆瓣小組的組名
新建工程資料夾,命令列cd到該目錄下,用下面的命令新建乙個scrapy工程
scrapy startproject dmoz
新建好的工程目錄結構為:
簡要說下幾個檔案,e:\python workspace\douban
│ scrapy.cfg
└─douban
│ items.py
│ pipelines.py
│ settings.py
│ __init__.py
└─spiders
__init__.py
- items:用來定義要抓取的內容;
- pipelines:用來對內容進行處理,包括過濾、輸出等;
- setting:不用說了,配置檔案
item當然是在items.py
裡定義了,我們只抓取小組的名稱,因此定義乙個groupname
就可以了,很簡單
這裡定義pipeline是將獲取到的組名輸出到檔案,由於預設輸出是unicode碼,轉換為中文需要再處理下。from scrapy.item import item, field
class
doubanitem
(item):
groupname = field
()
這是爬蟲的主體了,在spiders資料夾下新建乙個python檔案「groupspider.py」,先看內容吧import codecs
import json
class
doubanpipeline
(object):
def__init__
(self):
self.file = codecs.open('data.json', 'wb', encoding="utf-8")
defprocess_item
(self, item, spider):
line = json.dumps(dict(item))
self.file.write(line.decode("unicode_escape")+"\r\n")
return item
# coding=utf-8
__author__ = 'jeffee chen'
from scrapy.contrib.spiders import crawlspider
from douban.items import doubanitem
class
groupspider
(crawlspider):
name = "douban"
allowed_domains = ["douban.com"]
start_urls = [""]
defparse
(self, response):
item = doubanitem()
sel = response.xpath("//div[@class='group-list']/div[@class='result']")
for s in sel:
item["groupname"] = s.xpath("div[@class='content']/div[@class='title']/h3/a/text()").extract()
yield item
最後乙個引數就是我們的spider檔案中定義的name,根據pipelines的定義,抓取到的資料被輸出到根目錄下的data.json檔案
第乙個scrapy爬蟲
我們要爬取的是讀書網裡面的書名,作者,和對書的描寫 首先我們要定義爬取資料的模型,在items.py檔案中 import scrapy class moveitem scrapy.item 定義爬取的資料的模型 title scrapy.field auth scrapy.field desc sc...
scrapy 我的第乙個scrapy爬蟲
import scrapy from scrapy.linkextractors import linkextractor linkextractor是用來指定頁面提取規則的extract links 是用來獲取連線的 from items import baiduyueduitem 這是我的用來封...
第乙個爬蟲
很多人學習python的目的就是為了學習能夠實現爬蟲的功能,這裡,我使用了scrapy框架來實現了乙個簡單的爬蟲功能,這裡我簡單的介紹一下scrapy專案的建立,和執行。1,第一步是安裝scrapy,我相信到了這一步,大多數人都已經會安裝第三方庫檔案了,這裡主要是使用命令pip install sc...