Python 为什么MongoDB中存在attributeError';什么是收藏品?
在运行脚本之后,当我成功地生成.csv文件中的数据时,我遇到了这个错误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\
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
不可修改或未定义。