2-1homework

結(jié)果


Result.png

我的代碼


from bs4 import BeautifulSoup
import requests
import time
import pymongo

__author__ = 'CP6'

client = pymongo.MongoClient('localhost', 27017)
xiaozhuDB = client['xiaozhuDB']
xiaozhuTb = xiaozhuDB['xiaozhuTb']

urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(str(i)) for i in range(1, 4)]

def somMethod():
    for single_url in urls:
        wb_data = requests.get(single_url)
        soup = BeautifulSoup(wb_data.text, 'lxml')
        time.sleep(2)
        titles = soup.select('span.result_title')
        prices = soup.select('span.result_price > i')
        links = soup.select('#page_list > ul > li > a')

        # print(titles, prices, links,sep="\n-------------------------\n")
        # info = []
        for title, price, link in zip(titles, prices, links):
            data = {
                'title': title.get_text(),
                'price': int(price.get_text()),
                'link': link.get('href')
            }
            # print(data)
            # info.append(data)
            xiaozhuTb.insert_one(data)
        # for item in info:
        #     # print(item)
        #     if item['price'] >= 500:
        #         print(item)


def getResult():
    for item in xiaozhuTb.find({'price': {'$gt': 500}}):
        print(item)

if __name__ == '__main__':
    somMethod()
    getResult()

總結(jié)


  • 1. 數(shù)據(jù)庫(kù)查詢(xún)方法

# $lt/$lte/$gt/$gte/$ne 等價(jià)于 less than/equal/greater/not
  • 2. 打開(kāi)文件,讀取內(nèi)容

path = 'C:\\Users\Queen\Desktop\MuggleCode\Mycode\week2\\2-1\\2-1code_video\walden.txt'

with open(path, 'r') as f:
    lines = f.readlines() // 讀取文件的每一行
    for index, line in enumerate(lines):
        data = {
            'index': index,
            'line': line,
            'words': len(line.split())
        }
        print(data)
  • 3. enumerate 函數(shù): 用于遍歷序列中的元素以及它們的下標(biāo)

for i,j in enumerate(('a','b','c')):
     print i,j
 
0 a
1 b
2 c
  • 4. 數(shù)據(jù)庫(kù)操作步驟

// 建立連接
client = pymongo.MongoClient('localhost', 27017)
// 創(chuàng)建DB
xiaozhuDB = client['xiaozhuDB']
// 創(chuàng)建Table
xiaozhuTb = xiaozhuDB['xiaozhuTb']
// 插入數(shù)據(jù)
xiaozhuTb.insert_one(data)
// 查詢(xún)數(shù)據(jù)
for item in xiaozhuTb.find({'price': {'$gt': 500}}):
        print(item)
  • 5. Bs4 prettify

print(soup.b.prettify()) // html以標(biāo)準(zhǔn)格式輸出
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容