Я использую jupyter для редактирования, но после импорта pymongo, почему не могу перечислить данные, которые я хранил в MongoDB?
Я только новичок в Python, поэтому извините за эту основную проблему
введите описание изображения здесь
import pymongo
client = pymongo.MongoClient('localhost', 27017)
ceshi = client['ceshi']
item_info = ['item_info3']
for i in item_info:
if i.find('area'):
print(i)
Я использую Юпитер для редактирования, но после импорта pymongo я не могу перечислить данные, которые я сохранил в MongoDB. Что может быть причиной?
from bs4 import BeautifulSoup
import requests
import time
import pymongo
client = pymongo.MongoClient('localhost',27017)
ceshi = client['ceshi']
url_list = ceshi['url_list3']
item_info = ceshi['item_info3']
def get_links_from(channel,pages,who_sells=0):
#http://bj.58.com/diannao/0/pn2/
list_view = '{}{}/pn{}/'.format(channel,str(who_sells),str(pages))
wb_date = requests.get(list_view)
time.sleep(1)
soup = BeautifulSoup(wb_date.text,'lxml')
links = soup.select('tr.zzinfo > td.t > a.t')
if soup.find('td','t'):
for link in links:
item_link = link.get('href').split('?')[0]
else:
pass
url_list.insert_one({'url':item_link})
print(url_list)
def get_item_info(url):
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text,'lxml')
no_longer_exist = '404' in
soup.find('script',type="text/javascript").get('src').split('/')
if no_longer_exist:
pass
else:
title = soup.title.text
price = soup.select('span.price.c_f50')[0].text
date = soup.select('li.time')[0].text
area = list(soup.select('spam.c_25d a')[0].stripped_strings) if
soup.find_all('c_25d') else None
item_info.insert_one ({ 'название': название, 'цена': цена, 'дата' дата, 'область': область})
print(item_info)
#print({'title':title,'price':price,'date':date,'area':area})
get_item_info('http://bj.58.com/pingbandiannao/25347275157966x.shtml')
#get_links_from('http://bj.58.com/yunfuyongpin/',2)
1 ответ
Похоже, вы просматриваете массив строк и пытаетесь вызвать find для строки:
item_info = ['item_info3']
for i in item_info:
if i.find('area')
Если item_info3
это название вашей коллекции монго в ceshi
базы данных, то вы должны сделать что-то вроде:
item_info = ceshi['item_info3']
Даже тогда я не верю, что ваш запрос на поиск верен. Это должно быть что-то вроде этого:
for i in item_info.find():
print(i)
Больше информации о Mongo / Python: