最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用mongodb保存爬取豆瓣電影的數(shù)據(jù)過程解析

 更新時(shí)間:2019年08月14日 10:51:44   作者:silence-cc  
這篇文章主要介紹了Python使用mongodb保存爬取豆瓣電影的數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

創(chuàng)建爬蟲項(xiàng)目douban

scrapy startproject douban

設(shè)置items.py文件,存儲(chǔ)要保存的數(shù)據(jù)類型和字段名稱

# -*- coding: utf-8 -*-
import scrapy
class DoubanItem(scrapy.Item):
 title = scrapy.Field()
 # 內(nèi)容
 content = scrapy.Field()
 # 評(píng)分
 rating_num = scrapy.Field()
 # 簡介
 quote = scrapy.Field()

設(shè)置爬蟲文件doubanmovies.py

# -*- coding: utf-8 -*-
import scrapy
from douban.items import DoubanItem
class DoubanmoviesSpider(scrapy.Spider):
 name = 'doubanmovies'
 allowed_domains = ['movie.douban.com']
 offset = 0
 url = 'https://movie.douban.com/top250?start='
 start_urls = [url + str(offset)]
 def parse(self, response):
  # print('*'*60)
  # print(response.url)
  # print('*'*60)
  item = DoubanItem()
  info = response.xpath("http://div[@class='info']")
  for each in info:
   item['title'] = each.xpath(".//span[@class='title'][1]/text()").extract()
   item['content'] = each.xpath(".//div[@class='bd']/p[1]/text()").extract()
   item['rating_num'] = each.xpath(".//span[@class='rating_num']/text()").extract()
   item['quote'] = each .xpath(".//span[@class='inq']/text()").extract()
   yield item
   # print(item)
  self.offset += 25
  if self.offset <= 250:
   yield scrapy.Request(self.url + str(self.offset),callback=self.parse)

設(shè)置管道文件,使用mongodb數(shù)據(jù)庫來保存爬取的數(shù)據(jù)。重點(diǎn)部分

# -*- coding: utf-8 -*-
from scrapy.conf import settings
import pymongo
class DoubanPipeline(object):
 def __init__(self):
  self.host = settings['MONGODB_HOST']
  self.port = settings['MONGODB_PORT']
 def process_item(self, item, spider):
  # 創(chuàng)建mongodb客戶端連接對(duì)象,該例從settings.py文件里面獲取mongodb所在的主機(jī)和端口參數(shù),可直接書寫主機(jī)和端口
  self.client = pymongo.MongoClient(self.host,self.port)
  # 創(chuàng)建數(shù)據(jù)庫douban
  self.mydb = self.client['douban']
  # 在數(shù)據(jù)庫douban里面創(chuàng)建表doubanmovies
  # 把類似字典的數(shù)據(jù)轉(zhuǎn)換為phthon字典格式
  content = dict(item)
  # 把數(shù)據(jù)添加到表里面
  self.mysheetname.insert(content)
  return item

設(shè)置settings.py文件

# -*- coding: utf-8 -*-
BOT_NAME = 'douban'
SPIDER_MODULES = ['douban.spiders']
NEWSPIDER_MODULE = 'douban.spiders'
USER_AGENT = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;'
# Configure a delay for requests for the same website (default: 0)
# See https://doc.scrapy.org/en/latest/topics/settings.html#download-delay
# See also autothrottle settings and docs
DOWNLOAD_DELAY = 3
# The download delay setting will honor only one of:
#CONCURRENT_REQUESTS_PER_DOMAIN = 16
#CONCURRENT_REQUESTS_PER_IP = 16
# Disable cookies (enabled by default)
COOKIES_ENABLED = False
# Configure item pipelines
# See https://doc.scrapy.org/en/latest/topics/item-pipeline.html
ITEM_PIPELINES = {
 'douban.pipelines.DoubanPipeline': 300,
}
# mongodb數(shù)據(jù)庫設(shè)置變量
MONGODB_HOST = '127.0.0.1'
MONGODB_PORT = 27017

終端測試

scrapy crawl douban

這博客園的代碼片段縮進(jìn),難道要用4個(gè)空格才可以搞定?我發(fā)現(xiàn)只能使用4個(gè)空格才能解決如上圖的代碼塊的縮進(jìn)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • selenium.webdriver中add_argument方法常用參數(shù)表

    selenium.webdriver中add_argument方法常用參數(shù)表

    這篇文章主要介紹了selenium.webdriver中add_argument方法常用參數(shù)表,需要的朋友可以參考下
    2021-04-04
  • Python?os.environ實(shí)戰(zhàn)應(yīng)用及技巧總結(jié)

    Python?os.environ實(shí)戰(zhàn)應(yīng)用及技巧總結(jié)

    這篇文章主要介紹了Python?os.environ實(shí)戰(zhàn)應(yīng)用及技巧的相關(guān)資料,os.environ是Python中管理環(huán)境變量的強(qiáng)大工具,提供了對(duì)系統(tǒng)環(huán)境變量的訪問和修改能力,需要的朋友可以參考下
    2025-03-03
  • 使用matplotlib中scatter方法畫散點(diǎn)圖

    使用matplotlib中scatter方法畫散點(diǎn)圖

    這篇文章主要為大家詳細(xì)介紹了使用matplotlib中scatter方法畫散點(diǎn)圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python在后臺(tái)自動(dòng)解壓各種壓縮文件的實(shí)現(xiàn)方法

    Python在后臺(tái)自動(dòng)解壓各種壓縮文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了Python在后臺(tái)自動(dòng)解壓各種壓縮文件的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • flask中的wtforms使用方法

    flask中的wtforms使用方法

    這篇文章主要介紹了flask中的wtforms使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 淺談python中統(tǒng)計(jì)計(jì)數(shù)的幾種方法和Counter詳解

    淺談python中統(tǒng)計(jì)計(jì)數(shù)的幾種方法和Counter詳解

    今天小編就為大家分享一篇淺談python中統(tǒng)計(jì)計(jì)數(shù)的幾種方法和Counter詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 在PYQT5中QscrollArea(滾動(dòng)條)的使用方法

    在PYQT5中QscrollArea(滾動(dòng)條)的使用方法

    今天小編就為大家分享一篇在PYQT5中QscrollArea(滾動(dòng)條)的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python實(shí)現(xiàn)為pdf添加水印功能

    Python實(shí)現(xiàn)為pdf添加水印功能

    這篇文章主要介紹了Python實(shí)現(xiàn)給普通PDF添加水印的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Selenium 模擬瀏覽器動(dòng)態(tài)加載頁面的實(shí)現(xiàn)方法

    Selenium 模擬瀏覽器動(dòng)態(tài)加載頁面的實(shí)現(xiàn)方法

    這篇文章主要介紹了Selenium 模擬瀏覽器動(dòng)態(tài)加載頁面的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Python?pluggy模塊的用法示例演示

    Python?pluggy模塊的用法示例演示

    這篇文章主要介紹了Python?pluggy模塊的用法,pluggy提供了一個(gè)簡易便捷的插件系統(tǒng),可以做到插件與主題功能松耦合,pluggy?是pytest,tox,devpi的核心框架文中通過代碼示例演示給大家詳細(xì)介紹,需要的朋友參考下吧
    2022-05-05

最新評(píng)論

兴和县| 新竹市| 达州市| 谢通门县| 伊宁市| 诸城市| 沧州市| 郴州市| 青铜峡市| 淮安市| 大厂| 繁昌县| 汝南县| 宝鸡市| 潞西市| 榆中县| 棋牌| 霍林郭勒市| 江川县| 松桃| 策勒县| 攀枝花市| 古交市| 昌吉市| 贵港市| 舞钢市| 巴林左旗| 图片| 天峨县| 阿巴嘎旗| 鄂温| 云梦县| 维西| 惠来县| 宝鸡市| 舒城县| 祥云县| 娄烦县| 洮南市| 苍山县| 石屏县|