Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么MongoDB中存在attributeError';什么是收藏品?_Python_Mongodb_Scrapy_Selenium Chromedriver - Fatal编程技术网

Python 为什么MongoDB中存在attributeError';什么是收藏品?

Python 为什么MongoDB中存在attributeError';什么是收藏品?,python,mongodb,scrapy,selenium-chromedriver,Python,Mongodb,Scrapy,Selenium Chromedriver,在运行脚本之后,当我成功地生成.csv文件中的数据时,我遇到了这个错误 Traceback (most recent call last): File "f:\softwares\anaconda\lib\site-packages\twisted\internet\defer.py", line 654, in _runCallbacks current.result = callback(current.result, *args, **kw) File "C:\Users\

在运行脚本之后,当我成功地生成.csv文件中的数据时,我遇到了这个错误

Traceback (most recent call last):
  File "f:\softwares\anaconda\lib\site-packages\twisted\internet\defer.py", line 654, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "C:\Users\Danial Taimoor\Desktop\facebook\facebook\pipelines.py", line 21, in process_item
    self.collection.insert(dict(item))
AttributeError: 'MongoDBPipeline' object has no attribute 'collection'
2018-08-02 10:06:04 [scrapy.extensions.logstats] INFO: Crawled 1 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
这是settings.py代码

ITEM_PIPELINES = {
   'facebook.pipelines.MongoDBPipeline': 300,
}
MONGODB_SERVER='localhost'
MONGODB_PORT =  27017
MONGODB_DB= 'posts'
MONGODB_COLLECTION='fb_posts'
pipeline.py

from pymongo import MongoClient
from scrapy.conf import settings

class MongoDBPipeline(object):
    def __init_(self):
        connection=MongoClient(
            settings['MONGODB_SERVER'],
            settings['MONGODB_PORT']
        )
        db=connection[settings['MONGODB_DB']]
        self.collection=db[settings['MONGODB_COLLECTION']]

    def process_item(self,item,spider):
        self.collection.insert(dict(item))
        return item

这是我第一次尝试mongodb

老实说,我不明白这里的问题是什么,但我建议使用
scrapy mongodb
而不是实现您自己的管道。@StateEP对于chromedriver是否有任何限制,因为我是通过selenium webdriver生成数据的。因为没有selenium webdriver的实现,相同的代码在理想情况下运行,只要您从回调中生成项,那么您如何获取数据就无关紧要了。
self.collection=db[settings['MONGODB\u collection']
是错误的
self.connection=..
是游标,可以调用
self.connection[db\u name][collection\u name]
但需要
connection.database\u name()
connection[db\u name].collection\u name()
进行有效输入。错误:
self.collection.insert(dict(item))
不要使用静态变量,可能
collection
不可修改或未定义。