Scrapy Mongodb爬取資料

2021-07-26 15:53:32 字數 1875 閱讀 9592

scrapy爬蟲資料存到mongodb中

其實主要是前兩步

1、在settings.py中進行配置

item_pipelines = 

mongodb_host = '127.0.0.1'

mongodb_port = 27017

mongodb_dbname = 'spider1'

mongodb_docname = 'book_item'

2、修改pipeline檔案

首先初始化獲得settings中的mongodb資料庫資訊,在process_item提交插入資料。

注意這個settings是**的 x.conf

from scrapy.conf import settings

import pymongo

class dmozpipeline(object):

# def process_item(self, item, spider):

#     return item

def __init__(self):

port = settings['mongodb_port']

host = settings['mongodb_host']

db_name = settings['mongodb_dbname']

client = pymongo.mongoclient(host=host, port=port)

db = client[db_name]

self.post = db[settings['mongodb_docname']]

def process_item(self, item, spider):

book_info = dict(item)

self.post.insert(book_info)

return item

3.dmoz_item.py

import scrapy

from dmoz.items import dmozitem

class dmozitemspider(scrapy.spider):

name = "dmoz_item"

#allowed_domains = ["dmoz.org"]

start_urls = ['']

# name = "dmoz_item"

# allowed_domains = ["domz.org"]

# start_urls = ['']

def parse(self, response):

list=response.xpath('/html/body/div[5]/div/section[3]/div/div/div/div[3]')

for i in list:

item=dmozitem()

item['link']=i.xpath('a/@href').extract()

item['title']=i.xpath('a/div/text()').extract()

item['desc']=i.xpath('div/text()').extract()

yield item

4.items.py

import scrapy

class dmozitem(scrapy.item):

# define the fields for your item here like:

# name = scrapy.field()

title=scrapy.field()

desc=scrapy.field()

link=scrapy.field()

執行這個爬蟲就ok了

Python爬取小說 2 單章節爬取

coding utf 8 urlopen 開啟 request 請求 from urllib.request import urlopen,request 匯入gzip包 解壓gzip 封裝請求 req request url path,headers headers 開啟鏈結 conn urlop...

python動態爬取知乎 python爬取微博動態

在初學爬蟲的過程中,我們會發現很多 都使用ajax技術動態載入資料,和常規的 不一樣,資料是動態載入的,如果我們使用常規的方法爬取網頁,得到的只是一堆html 沒有任何的資料。比如微博就是如此,我們可以通過下滑來獲取更多的動態。對於這樣的網頁該如何抓取呢?我們以微博使用者動態為例,抓取某名使用者的文...

爬取電影資源之網頁爬取篇(python)

6v電影網的主頁分為三列,如下圖所示。該網每天會推薦一些電影 如上圖中的 今日推薦 電影質量還算可以,大部分電影評分還行。所以這部分及是我們現在要提取的部分。然後我們檢視其原始碼,找到該部分的 還是很好找的,網頁結構比較簡單 見下圖 為了驗證找到的 區域是否為我們需要的,可以把圖中框出的 複製到乙個...