问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么从mongondb提取数据到scrapy

发布网友 发布时间:2022-04-08 10:05

我来回答

2个回答

懂视网 时间:2022-04-08 14:27

    技术分享

  settings.py

BOT_NAME = ‘novelspider‘

SPIDER_MODULES = [‘novelspider.spiders‘]
NEWSPIDER_MODULE = ‘novelspider.spiders‘

ITEM_PIPELINES = [‘novelspider.pipelines.NovelspiderPipeline‘]  #导入pipelines.py中的方法

USER_AGENT = ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0‘
COOKIES_ENABLED = True

MONGODB_HOST = ‘127.0.0.1‘ 
MONGODB_PORT = 27017
MONGODB_DBNAME = ‘zzl‘    #数据库名
MONGODB_DOCNAME = ‘Book‘   #表名

  pipelines.py

from scrapy.conf import settings
import pymongo

class NovelspiderPipeline(object):
 def __init__(self):
 host = settings[‘MONGODB_HOST‘]
 port = settings[‘MONGODB_PORT‘]
 dbName = settings[‘MONGODB_DBNAME‘]
 client = pymongo.MongoClient(host=host, port=port)
 tdb = client[dbName]
 self.post = tdb[settings[‘MONGODB_DOCNAME‘]]

 def process_item(self, item, spider):
 bookInfo = dict(item)
 self.post.insert(bookInfo)
 return item

  items.py

from scrapy import Item,Field


class NovelspiderItem(Item):
 # define the fields for your item here like:
 # name = scrapy.Field()
 bookName = Field()
 bookTitle = Field()
 chapterNum = Field()
 chapterName = Field()
 chapterURL = Field()

  在spiders目录下创建novspider.py

from scrapy.spiders import CrawlSpider
from scrapy.selector import Selector
from novelspider.items import NovelspiderItem

class novSpider(CrawlSpider):
 name = "novspider"
 redis_key = ‘novspider:start_urls‘
 start_urls = [‘http://www.daomubiji.com/‘]

 def parse(self,response):
 selector = Selector(response)
 table = selector.xpath(‘//table‘)
 for each in table:
  bookName = each.xpath(‘tr/td[@colspan="3"]/center/h2/text()‘).extract()[0]
  content = each.xpath(‘tr/td/a/text()‘).extract()
  url = each.xpath(‘tr/td/a/@href‘).extract()
  for i in range(len(url)):
  item = NovelspiderItem()
  item[‘bookName‘] = bookName
  item[‘chapterURL‘] = url[i]
  try:
   item[‘bookTitle‘] = content[i].split(‘ ‘)[0]
   item[‘chapterNum‘] = content[i].split(‘ ‘)[1]
  except Exception,e:
   continue

  try:
   item[‘chapterName‘] = content[i].split(‘ ‘)[2]
  except Exception,e:
   item[‘chapterName‘] = content[i].split(‘ ‘)[1][-3:]
  yield item

  5.启动项目命令: scrapy crawl novspider.  

     抓取结果

  技术分享

  

Scrapy和MongoDB的应用---爬取

标签:

热心网友 时间:2022-04-08 11:35

1.spider 爬虫文件,制定抓取规则主要是利用xpath 2.items.py 主要指定抓取的内容 3.pipeline.py 有一个指向和存储数据的功能,这里我们还会增加一个store.py的文件,文件内部就是创建一个MongoDB的数据库。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 多多直播违规对店铺销量有没有影响? 我拼多多要不要开多多直播? 同城快递最迟几点?UU跑腿送东西可以上面取件吗? 开了多多直播可以其它手机代播吗? 同城快递最晚到几点?UU跑腿夜间可以用吗? UU跑腿代送快递24小时服务吗? 悬崖式盆景 黑松盆景冬季掉针是怎么回事儿? 娃娃鱼鱼头能和鸡一起炖吗? 抖音小姐姐? 请问这个抖音小姐姐是谁 急求 各位大佬这个小姐姐是谁 抖音上的? 抖音这个小姐姐是谁,配乐我怎么这么好看。 这个抖音上的小姐姐叫什么啊 JAY2U网站上有个歌叫<本草纲目>哪里可以下载整首歌曲? 中国本草世界茶叶有限公司怎么样? 中华医书集成的图书目录 春晚本草纲目歌词 求.Let's Get Wet Medley: Let's Get Wet/头发乱了/本草纲目/Let's Get Wet 的LRC歌词 本草拾遗的内容简介 十四斤东北粘豆包大概多少钱? 东北粘豆包一般多少克一个?一顿吃四个豆包有多少卡路里? 东北粘豆包哪里卖? 东北哪里有卖好吃的粘豆包 在北京卖东北粘豆包有前景吗? 买东北粘豆包去什么地方? 粘豆包是啥 在北京,哪能买到”东北粘豆包”!! 谁吃过东北的粘豆包?感觉好吃吗? 粘豆包外面的白色粉是什么粉 东北粘豆包 软糯香甜的东北特色粘豆包,在家应该怎么做? 东北人为什么喜欢吃粘豆包? 北京那里能买到东北粘豆包。 歌词 妈妈 谢谢你 我心中充满感激 只因为这世界有你 歌名是什么 谁知道有一首歌的歌词是这样唱的:妈妈,谢谢你! 谁有这首歌的名字,给我个!跪求啊·· 公司在深交所上市后,原有股东已有或未有证券账户的,该怎么处理? 谢谢。。。 公司上市,原股东怎么得钱? 公司上市后,原股东的股份和市场发行的股票性质一致吗? baby singer baby singer where are you是什么儿歌