PYTHON實(shí)戰(zhàn)計劃Week2-1:在 MongoDB 中篩選房源

之前用過SQL衙吩,在使用Mongo的查詢時,很不適應(yīng)溪窒,需要一 個過渡的過程坤塞,代碼直接在week1-3的作業(yè)中進(jìn)行修改的

我的代碼

from bs4 import BeautifulSoup
import requests,pymongo
import time

client = pymongo.MongoClient('localhost',27017)
xz_db = client['xz_db']
houseinfo = xz_db['houseinfo']


#獲取詳情頁鏈接
def get_url_xz(n=1):  #通過參數(shù)n來控制爬取的頁數(shù),默認(rèn)為一頁
    urls_list = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(str(i)) for i in range(1, n+1)]  # 列表頁鏈接列表
    urls_attr = []  # 詳情頁鏈接列表
    #通過for循環(huán)澈蚌,把列表頁的詳情頁鏈接加入urls_attr
    for url_single in urls_list:
        wb_data = requests.get(url_single)
        soup = BeautifulSoup(wb_data.text, 'lxml')
        urls = soup.select('div#page_list > ul > li > a[target="_blank"]')
        for url in urls:
            urls_attr.append(url.get('href'))
    return urls_attr

#爬取詳情頁數(shù)據(jù)
def get_attractions_xz(url,data=None):
    for each_url in url:
        wb_data = requests.get(each_url)  # 獲取頁面內(nèi)容
        soup = BeautifulSoup(wb_data.text, 'lxml')
        # print(soup)
        # 獲取目標(biāo)信息
        title = soup.select('div.pho_info > h4 > em')              # 標(biāo)題
        address = soup.select('div.pho_info > p > span')           # 地址
        price = soup.select('div.day_l > span')                    # 價格
        pic_fd = soup.select('div.member_pic > a > img')           # 房東照片
        name = soup.select('div.w_240 > h6 > a')                   # 房東姓名
        sex = soup.select('div.w_240 > h6')                        # 房東性別
        img = soup.select('div.pho_show_big > div > img')          # 第一張圖片鏈接
        # print(titls,address,price,pic_fangdong,name,sex,img)

        # 據(jù)分析摹芙,若房東為男性,則用的CSS為'member_boy_ico'宛瞄,否則為女性浮禾,通過條件判斷為sex賦值
        if len(sex[0].find_all("span", class_="member_boy_ico")):
            sex = 'Male'  # 男性
        else:
            sex = 'Female'  # 女性
        data = {
            'title': title[0].get_text(),
            'addres': address[0].get_text().split('\n')[0],  # 地址中包含換行符及一行空格,通過分割份汗,只保留地址部分
            'price': int(price[0].get_text()),
            'pic_fd': pic_fd[0].get('src'),
            'name': name[0].get("title"),  # 房東姓名在title屬性中盈电,用get方法獲取
            'sex': sex,
            'img': img[0].get('src')
        }
        print(data)
        houseinfo.insert_one(data)
        print('Done')

#將數(shù)據(jù)保存至Mongo數(shù)據(jù)庫
url=get_url_xz(n=3) #獲取3頁的所有詳情頁鏈接,頁數(shù)可自由選擇
get_attractions_xz(url)

#讀取所需的數(shù)據(jù)
#房價大于500的房子信息
for item in houseinfo.find({'price': {'$gt':500}}):
    print(item)
# 分割線
print('\n' + '-'*200 +'\n')
#房價小于500的房子信息
for item in houseinfo.find({'price': {'$lt':500}}):
    print(item)
# 分割線
print('\n' + '-'*200 +'\n')
#房東為女性,房價大于300
for item in houseinfo.find({'price': {'$gt':300}} and {'sex': 'Female'} ):
    print(item)

總結(jié)

1.還得去認(rèn)真學(xué)習(xí)Mongo的操作語言杯活;
2.想在python中實(shí)現(xiàn)Mongo的like 查詢匆帚,在mongo shell中可以這樣db.test.find({'name':/hucuibai/}),但在python中會報錯,請問老師旁钧,在python中應(yīng)該怎么寫吸重。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市歪今,隨后出現(xiàn)的幾起案子嚎幸,更是在濱河造成了極大的恐慌,老刑警劉巖寄猩,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫉晶,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)车遂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門封断,熙熙樓的掌柜王于貴愁眉苦臉地迎上來斯辰,“玉大人舶担,你說我怎么就攤上這事”蛏耄” “怎么了衣陶?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闸氮。 經(jīng)常有香客問我剪况,道長,這世上最難降的妖魔是什么蒲跨? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任译断,我火速辦了婚禮,結(jié)果婚禮上或悲,老公的妹妹穿的比我還像新娘孙咪。我一直安慰自己,他們只是感情好巡语,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布翎蹈。 她就那樣靜靜地躺著,像睡著了一般男公。 火紅的嫁衣襯著肌膚如雪荤堪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天枢赔,我揣著相機(jī)與錄音澄阳,去河邊找鬼。 笑死踏拜,一個胖子當(dāng)著我的面吹牛寇荧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播执隧,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼揩抡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了镀琉?” 一聲冷哼從身側(cè)響起峦嗤,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屋摔,沒想到半個月后烁设,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年装黑,在試婚紗的時候發(fā)現(xiàn)自己被綠了副瀑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡恋谭,死狀恐怖糠睡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疚颊,我是刑警寧澤狈孔,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站材义,受9級特大地震影響均抽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜其掂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一油挥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧款熬,春花似錦深寥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盔夜,卻和暖如春负饲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喂链。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工返十, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人椭微。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓洞坑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蝇率。 傳聞我的和親對象是個殘疾皇子迟杂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容