0

私は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)

Jupiter を使用して編集していますが、 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)
4

1 に答える 1

0

文字列の配列をループして、文字列で find を呼び出そうとしているようです:

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

item_info3がデータベース内の mongo コレクションの名前である場合は、次のceshiようにする必要があります。

item_info = ceshi['item_info3']

それでも、検索クエリが正しいとは思いません。次のようになります。

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

Mongo/python の詳細:

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

于 2016-04-17T22:06:18.840 に答える