scrapy入門的乙個例子

2021-07-24 04:10:52 字數 2375 閱讀 2780

最近在嘗試進行資料分析, 首先從資料探勘開始, 無可避免地找到了scrapy.

scrapy入門教程

首先開啟豆瓣動畫tag的頁面, 分析一下url, start代表開始的順序, 嘗試改變量字大小, 頁面正常跳轉.可以改變這個數字實現翻頁.

再去頁面裡找我們需要的東西, 一張, 還有動畫的資訊. 用任意檢視html源**的工具, 很輕鬆可以找到以下標籤.

我們所需要的資料, 全部在這個img裡面, 乙個是 src 屬性, 乙個是 alt 屬性. 明白了這些, 就可以開始敲**了.

配好環境後, 通過scrapy startproject ***x新建專案.

spider需要放在spiders資料夾下面, 新建乙個.py檔案, 裡面用class宣告乙個蜘蛛.

import scrapy

class spider(scrapy.spider):

name = 'spider'

start_urls= [

]def parse(self, response):

...

結合我上面指出的標籤, 可以通過css選擇器獲得我們的需要的資料.

img_arr = 

text_arr =

for item in response.css('.nbg > img'):

資料收集邏輯完畢.

本地化使用了urllib2.

if not os.path.exists('temp/'):

os.mkdir('temp/')

for i in xrange(min(len(img_arr), len(text_arr))):

with open('temp/' + str(self.myenumerate) + '.' + text_arr[i][0] + img_arr[i][0][img_arr[i][0].rfind('.'):], 'wb+') as f:

req = urllib2.request(img_arr[i][0], headers = self.head)

res = urllib2.urlopen(req)

f.write(res.read())

self.myenumerate +=1

f.close()

有幾個地方需要注意下.

#-*- coding:utf-8 -*-

import scrapy

import urllib2

import os

class spider(scrapy.spider):

name = 'spider'

start_urls = ['']

myenumerate = 0

def parse(self, response):

print("123000")

for i in xrange(1980 / 20):

url = '' + str(i * 20) + '&type=s'

yield scrapy.request(url, callback = self.parse_deal, headers= self.head)

def parse_deal(self, response):

print("1230001")

img_arr =

text_arr =

for item in response.css('.nbg > img'):

if not os.path.exists('temp/'):

os.mkdir('temp/')

for i in xrange(min(len(img_arr), len(text_arr))):

with open('temp/' + str(self.myenumerate) + '.' + text_arr[i][0] + img_arr[i][0][img_arr[i][0].rfind('.'):], 'wb+') as f:

req = urllib2.request(img_arr[i][0], headers = self.head)

res = urllib2.urlopen(req)

f.write(res.read())

self.myenumerate +=1

f.close()

回到專案根目錄, 通過scrapy crawl 爬蟲名稱, 執行爬蟲.

お終い。

Spring 入門的第乙個例子

1 spring的實現原理和現實工廠原理是一樣。可以理解成spring就是乙個大的工廠。2 我先寫乙個簡單工廠,然後再寫乙個spring對比一下。3 簡單工廠例子如下 3.1 先寫乙個介面。public inte ce ren public class woman implements ren 3....

LineDDA的乙個例子

unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,extctrls,stdctrls,buttons type tfmmain class tform ...

SQL GROUP CONCAT的乙個例子

我有乙個這樣的資料庫 user info 現在有乙個需求是把這樣 9 條記錄按照 username 來 group 成3條記錄 目標 shu female 201 lee male 202 yuki female 181 如果用select from user info group by usern...