2016-04-17 5 views
0

Ich bin nur der Anfänger von Python, so traurig über dieses GrundproblemIch benutze Jupyter zum Bearbeiten, aber nach dem Import von Pymongo, warum kann ich nicht die Daten auflisten, die ich in MongoDB gespeichert habe?

enter image description here

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) 

Ich bin mit Jupiter zu bearbeiten, aber nach dem Import pymongo, kann ich nicht die Daten, die ich in gespeicherten Liste MongoDB. Was könnte der Grund sein?

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 ({ 'title': Titel, 'Preis': Preis, 'Datum': Datum, 'Gebiet': Gebiet})

 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

Bitte zeigen Sie Ihr Programm als Code formatiert nicht als Bild. – CaptSolo

+0

Funktioniert Ihr Code in Ordnung, wenn er direkt von Python (und nicht von Jupyter) ausgeführt wird? Ich vermute nicht. – CaptSolo

+0

Sie müssen mehr Informationen zu Ihrer Frage hinzufügen. Wie lautet der Name der Sammlung, die Sie in Mongo abfragen möchten? Im Moment sieht es so aus, als würden Sie nur eine Liste von Strings durchlaufen. Ist 'item_info3' eine Sammlung in Mongo? – markwatsonatx

Antwort

0

Es sieht aus wie Sie looping durch eine Reihe von Strings und versucht, an einer Schnur finden anrufen:

item_info = ['item_info3'] 
for i in item_info: 
    if i.find('area') 

Wenn item_info3 der Name Ihrer mongo Sammlung in der Datenbank ceshi ist, dann sollten Sie so etwas wie:

item_info = ceshi['item_info3'] 

Auch dann glaube ich nicht, dass Ihre Suchanfrage korrekt ist. Es sollte wie folgt sein:

for i in item_info.find(): 
    print(i) 

Mehr Informationen über Mongo/Python:

https://docs.mongodb.org/getting-started/python/query/