分布式爬蟲處理Redis裡的資料

2021-08-15 06:51:53 字數 2634 閱讀 8181

啟動mongodb資料庫:sudo mongod

執行下面程式:py2 process_youyuan_mongodb.py

# process_youyuan_mongodb.py

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

import json

import redis

import pymongo

defmain

():# 指定redis資料庫資訊

rediscli = redis.strictredis(host='192.168.199.108', port=6379, db=0)

# 指定mongodb資料庫資訊

mongocli = pymongo.mongoclient(host='localhost', port=27017)

# 建立資料庫名

db = mongocli['youyuan']

# 建立表名

sheet = db['beijing_18_25']

while

true:

# fifo模式為 blpop,lifo模式為 brpop,獲取鍵值

啟動mysql:mysql.server start(更平台不一樣)

登入到root使用者:mysql -uroot -p

建立資料庫youyuan:create database youyuan;

切換到指定資料庫:use youyuan

建立表beijing_18_25以及所有欄位的列名和資料型別。

執行下面程式:py2 process_youyuan_mysql.py

#process_youyuan_mysql.py

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

import json

import redis

import mysqldb

defmain

():# 指定redis資料庫資訊

rediscli = redis.strictredis(host='192.168.199.108', port = 6379, db = 0)

# 指定mysql資料庫

mysqlcli = mysqldb.connect(host='127.0.0.1', user='power', passwd='******x', db = 'youyuan', port=3306, use_unicode=true)

while

true:

# fifo模式為 blpop,lifo模式為 brpop,獲取鍵值

source, data = rediscli.blpop(["youyuan:items"])

item = json.loads(data)

try:

# 使用cursor()方法獲取操作游標

cur = mysqlcli.cursor()

# 使用execute方法執行sql insert語句

cur.execute("insert into beijing_18_25 (username, crawled, age, spider, header_url, source, pic_urls, monologue, source_url) values (%s, %s, %s, %s, %s, %s, %s, %s, %s )", [item['username'], item['crawled'], item['age'], item['spider'], item['header_url'], item['source'], item['pic_urls'], item['monologue'], item['source_url']])

# 提交sql事務

mysqlcli.commit()

#關閉本次操作

爬蟲 分布式爬蟲

爬蟲的本質 很多搞爬蟲的總愛吹噓分布式爬蟲,彷彿只有分布式才有逼格,不是分布式簡直不配叫爬蟲,這是一種很膚淺的思想。分布式只是提高爬蟲功能和效率的乙個環節而已,它從來不是爬蟲的本質東西。爬蟲的本質是網路請求和資料處理,如何穩定地訪問網頁拿到資料,如何精準地提取出高質量的資料才是核心問題。分布式爬蟲只...

分布式爬蟲

乙個基於scrapy redis的分布式爬蟲模板,在scrapy redis自帶的example的基礎上進行修改,新增在實際爬取過程中大部分爬蟲可能用到的功能,使的構建分布式爬蟲更加的簡單。scrapy redis windows ubuntu sudo apt get install redis ...

分布式爬蟲

修改普通爬蟲專案為分布式爬蟲 1.主爬蟲檔案myspider.py 做如下修改,其他不做修改 import scrapy from items import myitem 匯入資料模型 from scrapy redis.spiders import redisspider 匯入scrapy red...