我們要爬取的是讀書網裡面的書名,作者,和對書的描寫
首先我們要定義爬取資料的模型,在items.py檔案中
import scrapy
class
moveitem
(scrapy.item):
# 定義爬取的資料的模型
title = scrapy.field
() auth = scrapy.field
() desc = scrapy.field
()
主要的還是spiders目錄下的move.py檔案
import scrapy
from douban.items import moveitem
class
moviespider
(scrapy.spider):
# 表示蜘蛛的名字,每個蜘蛛的名字必須是唯一的
name = 'movie'
# 表示過濾爬取的網域名稱
allwed_domians = ['dushu.com']
# 表示最初要爬取的url
start_urls = ['']
defparse
(self,response):
li_list = response.xpath('/html/body/div[6]/div/div[2]/div[2]/ul/li')
for li in li_list:
item = moveitem()
item['title'] = li.xpath('div/h3/a/text()').extract_first()
item['auth'] = li.xpath('div/p[1]/a/text()').extract_first()
item['desc'] = li.xpath('div/p[2]/text()').extract_first()
# 生成器
yield item
href_list = response.xpath('/html/body/div[6]/div/div[2]/div[3]/div/a/@href').extract()
for href in href_list:
# 把在頁面上爬取的url補全
url = response.urljoin(href)
# 乙個生成器,response的裡面鏈結,再進行子request,不斷執行parse,是個遞迴。
yield scrapy.request(url=url,callback=self.parse)
想要持久化資料只有把資料儲存起來:在settings.py檔案裡設定
在pipelines.py檔案裡:
import pymongo
class
doubanpipeline
(object):
def__init__
(self):
self.mongo_client = pymongo.mongoclient('mongodb:')
defprocess_item
(self, item, spider):
db = self.mongo_client.data
message = db.messages
message.insert(dict(item))
return item
scrapy 我的第乙個scrapy爬蟲
import scrapy from scrapy.linkextractors import linkextractor linkextractor是用來指定頁面提取規則的extract links 是用來獲取連線的 from items import baiduyueduitem 這是我的用來封...
scrapy爬蟲起步(1) 第乙個爬蟲程式
目標 使用scrapy抓取豆瓣小組的組名 新建工程資料夾,命令列cd到該目錄下,用下面的命令新建乙個scrapy工程 scrapy startproject dmoz 新建好的工程目錄結構為 e python workspace douban scrapy.cfg douban items.py p...
第乙個爬蟲
很多人學習python的目的就是為了學習能夠實現爬蟲的功能,這裡,我使用了scrapy框架來實現了乙個簡單的爬蟲功能,這裡我簡單的介紹一下scrapy專案的建立,和執行。1,第一步是安裝scrapy,我相信到了這一步,大多數人都已經會安裝第三方庫檔案了,這裡主要是使用命令pip install sc...