代码部分
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.