scrapy系統學習 1 概要

2022-04-11 19:03:21 字數 2432 閱讀 6225

一.安裝scrapy/mysql/mysqldb

#

sudo apt-key adv --keyserver hkp: --recv 627220e7

#echo 'deb scrapy main' | sudo tee /etc/apt/sources.list.d/scrapy.list

#sudo apt-get update && sudo apt-get install scrapy-0.25

#

apt-get install mysql-server

#

apt-get install python2.7-mysqldb

二.爬蟲的目標是抓取

start乙個爬蟲專案,目標是抓取 介面上每日更新的內容並以json格式儲存。

root@alexknight:/home# scrapy startproject mininova

mininova/├── mininova

│ ├──

__init__

.py│ ├── items.py

│ ├── pipelines.py

│ ├── settings.py

│ └── spiders

│    └──

__init__

.py└── scrapy.cfg

items一般與pipelines.py一起使用,items可以定義自己需要抓取的格式,pipelines.py可以定義抓取內容。

items.py:

#

-*- coding: utf-8 -*-

#define here the models for your scraped items##

see documentation in:

#import

scrapy

class

mininovaitem(scrapy.item):

#define the fields for your item here like:

#name = scrapy.field()

url=scrapy.field()

name=scrapy.field()

description=scrapy.field()

size=scrapy.field()

在spider新建檔案mininova_spider.py:

from scrapy.contrib.spiders import

crawlspider, rule

from scrapy.contrib.linkextractors import

linkextractor

from mininova.items import

mininovaitem

class

mininovaspider(crawlspider):

name='

mininova

'allowed_domains=['

mininova.org']

start_urls = ['

']rules = [rule(linkextractor(allow=['

/tor/\d+

']), '

parse_torrent')]

defparse_torrent(self, response):

#global mininovaitem

torrent =mininovaitem()

torrent[

'url

'] =response.url

torrent[

'name

'] = response.xpath("

//h1/text()

").extract()

torrent[

'description

'] = response.xpath("

//div[@id='description']

").extract()

torrent[

'size

'] = response.xpath("

//div[@id='info-left']/p[2]/text()[2]

").extract()

return torrent

將資料json化

root@alexknight:/home/mininova#

scrapy crawl mininova -o scraped_data.json

root@alexknight:/home/mininova#vim scraped_data.json

LINUX系統學習 安裝與概要

cpu 主頻1ghz以上 記憶體 1gb以上 硬碟 分割槽空閒空間8gb以上 個人使用wmware建議版本8.0以下 磁碟分割槽 是使用分割槽編輯器 partition editor 在磁碟上劃分幾個邏輯部分。碟片一旦劃分成數個分割槽 partition 不同類的目錄與檔案可以儲存進不同的分割槽。分...

PHP系統學習1

1.php變數 2.php引用變數 name1 name2 3.全域性變數 4.魔術變數 line file function class method 5.可變變數 temp1 temp2 temp2 111 echo temp1 6.表示式 負數為true,空字串和 0 為false,陣列和物件...

Linux系統學習筆記 1

linux的特點 1.免費的 開源的 2.支援多執行緒 多使用者的 3.安全性好 4.對記憶體和檔案管理優越 缺點 操作相對困難 linux的使用者管理 useradd 使用者名稱 新增使用者 passwd 使用者名稱 設定密碼 userdel 使用者名稱 刪除使用者 userdel r 使用者名稱...