最近在嘗試進行資料分析, 首先從資料探勘開始, 無可避免地找到了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...