教程python收集爬蟲(chóng)scrapy存進(jìn)數(shù)據(jù)庫(kù)_第1頁(yè)
教程python收集爬蟲(chóng)scrapy存進(jìn)數(shù)據(jù)庫(kù)_第2頁(yè)
教程python收集爬蟲(chóng)scrapy存進(jìn)數(shù)據(jù)庫(kù)_第3頁(yè)
教程python收集爬蟲(chóng)scrapy存進(jìn)數(shù)據(jù)庫(kù)_第4頁(yè)
教程python收集爬蟲(chóng)scrapy存進(jìn)數(shù)據(jù)庫(kù)_第5頁(yè)
全文預(yù)覽已結(jié)束

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、教程pythonscrapyPython網(wǎng)絡(luò)爬蟲(chóng)Scrapy存入數(shù)據(jù)庫(kù)(轉(zhuǎn)載)scrapy三步曲scrapy的簡(jiǎn)介、安裝與實(shí)例(python抓取的爬蟲(chóng)框架)(原文地址:)實(shí)例,官方有個(gè)實(shí)例教程,算是比較簡(jiǎn)單了,然后后面有更詳細(xì)的一項(xiàng)項(xiàng)解釋,不過(guò)老實(shí)講我還真是看不太懂,很多地方?jīng)]有給出實(shí)例,所以我在網(wǎng)上找了一大堆資料后,弄了一個(gè)實(shí)例?,F(xiàn)在列出來(lái)跟大家分享。1.實(shí)例初級(jí)目標(biāo):從一個(gè)網(wǎng)站的列表頁(yè)抓取文章列表,然后存入數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)包括文章標(biāo)題、鏈接、時(shí)間首先生成一個(gè)項(xiàng)目:scrapy startproject fjsen目錄結(jié)構(gòu)大致如下:先定義下items,打開(kāi)items.py: 我們開(kāi)始建模的項(xiàng)

2、目,我們想抓取的標(biāo)題,地址和時(shí)間的網(wǎng)站,我們定義域?yàn)檫@三個(gè)屬性。這樣做,我們編輯items.py,發(fā)現(xiàn)在開(kāi)放目錄目錄。我們的項(xiàng)目看起來(lái)像這樣:# Define here the models for your scraped items# See documentation in:#import Item, Field class FjsenItem(Item):# define the fields for your item here like:# name = Field()title=Field()link=Field()addtime=Field()大家想知道更加詳細(xì)的話看:第二步:

3、定義一個(gè)spider,就是爬行蜘蛛(注意在工程的spiders文件夾下),他們確定一個(gè)初步清單的網(wǎng)址下載,如何跟隨鏈接,以及如何分析這些內(nèi)容的頁(yè)面中提取項(xiàng)目(我們要抓取的網(wǎng)站是這列表的所有十頁(yè)的鏈接和時(shí)間)。 新建一個(gè)fjsen_spider.py,內(nèi)容如下: #-*- coding: utf-8 -*-from scrapy.spider import BaseSpiderfrom scrapy.selector import HtmlXPathSelector from fjsen.itemsimport FjsenItemclass FjsenSpider(BaseSpider):nam

4、e=fjsenallowed_domains=start_urls=+str(x)+.htm for x inrange(2,11)+def parse(self,response):hxs=HtmlXPathSelector(response)sites=hxs.select(/ul/li)items=for site in sites:item=FjsenItem()itemtitle=site.select(a/text().extract()itemlink = site.select(a/href).extract()itemaddtime=site.select(span/text

5、().extract()items.append(item)return items name:是確定蜘蛛的名稱。它必須是獨(dú)特的,就是說(shuō),你不能設(shè)置相同的名稱不同的蜘蛛。allowed_domains:這個(gè)很明顯,就是允許的域名,或者說(shuō)爬蟲(chóng)所允許抓取的范圍僅限這個(gè)列表里面的域名。 start_urls:是一個(gè)網(wǎng)址列表,蜘蛛會(huì)開(kāi)始爬。所以,第一頁(yè)將被列在這里下載。隨后的網(wǎng)址將生成先后從數(shù)據(jù)中包含的起始網(wǎng)址。我這里直接是列出十個(gè)列表頁(yè)。 parse():是蜘蛛的一個(gè)方法,當(dāng)每一個(gè)開(kāi)始下載的url返回的Response對(duì)象都會(huì)執(zhí)行該函數(shù)。 這里面,我抓取每一個(gè)列表頁(yè)中的下的下的數(shù)據(jù),包括title,

6、鏈接,還有時(shí)間,并插入到一個(gè)列表中.第三步,將抓取到的數(shù)據(jù)存入數(shù)據(jù)庫(kù)中,這里就得在pipelines.py這個(gè)文件里面修改了 # Define your item pipelines here# Dont forget to add your pipeline to the ITEM_PIPELINESsetting# See:import sqlite3from os import pathfrom scrapy import signalsfrom scrapy.xlib.pydispatch import dispatcherclass FjsenPipeline(object):def

7、 _init_(self):self.conn=Nonedispatcher.connect(self.initialize,signals.engine_started)dispatcher.connect(self.finalize,signals.engine_stopped)def process_item(self,item,spider):self.conn.execute(insert into fjsenvalues(?,?,?,?),(None,itemtitle0,+itemlink0,itemaddtime0)return item def initialize(self

8、):if path.exists(self.filename):self.conn=sqlite3.connect(self.filename)else:self.conn=self.create_table(self.filename)def finalize(self):if self.conn is not None:mit()self.conn.close()self.conn=Nonedef create_table(self,filename):conn=sqlite3.connect(filename)conn.execute(create table fjsen(id integer primary keyautoincrement,title text,link text,addtime text)mit()return conn這里我暫時(shí)不解釋,先繼續(xù),讓這個(gè)蜘蛛跑起來(lái)再說(shuō)。 第四步:修改setting.py

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論