0基础python实战:2_1homework

2016-11-23  本文已影响0人  翀Chen翀

代码部分


from bs4 import BeautifulSoup
import requests
import pymongo
urls=['http://sh.xiaozhu.com/search-duanzufang-p{}-0/'.format(str(i)) for i in range(1,4)]
def get_prices(x,y=None):
    wb=requests.get(x)
    soup=BeautifulSoup(wb.text,'lxml')
    addres=soup.select('span.result_title.hiddenTxt')
    prices=soup.select('span.result_price i')
    bb=[]
    if y==None:
        for addre,price in zip(addres,prices):
            data={
                '地址':addre.get_text(),
                '价格':price.get_text()
            }
            bb.append(data)
        return bb
b=[]
for i in urls:
    c=get_prices(i)
    for j in range(0,len(c)):
        b.append(c[j])
client=pymongo.MongoClient('localhost',27017)
mat=client['mat']
sheet_lines=mat['sheet_lines']

for i,p in enumerate(b):
    data={
        '编号':int(int(i)+1),
        '价格':int(b[i]['价格']),
        '地址':b[i]['地址']
    }
    sheet_lines.insert_one(data)
for i in sheet_lines.find({'价格':{'$gte':500}}):
    print(i)


主要收获:

1. 之前看编程小白电子书的时候对字典中元素的定位粗粗看了一下,在本次作业中以为字典元素定位和列表一样,如b[1],结果多次报错,结果程序报错。会看字典元素的定位后发现正确的定位语法为b[‘xx’]。

2. 利用.find进行筛选时,必须保证被筛选对象时int或float,否则程序报错。

3.

上一篇 下一篇

猜你喜欢

热点阅读