美文网首页
Python实战计划学习笔记0704

Python实战计划学习笔记0704

作者: 个十滴水 | 来源:发表于2016-07-10 21:26 被阅读0次

实战计划第六天,学习Mongo数据库的生成和读取。

最终成果是这样的:

Paste_Image.png

我的代码:

#!/usr/bin/env python    #告诉计算机执行程序在系统环境变量中的名字,详细位置在环境变量中设置好了
# -*- coding: utf-8 -*-
import pymongo
from bs4 import BeautifulSoup
import requests

client = pymongo.MongoClient('localhost',27017)
xiaozhu = client['xiaozhu']
sheet_tab = xiaozhu['sheet_tab']

def container(url):
    wb_data = requests.get(url)
    soup = BeautifulSoup(wb_data.text,'lxml')

    prices = soup.select('#page_list > ul > li > div.result_btm_con.lodgeunitname > span.result_price > i')
    titles = soup.select('#page_list > ul > li > div.result_btm_con.lodgeunitname > div > a > span')
    types  = soup.select('#page_list > ul > li > div.result_btm_con.lodgeunitname > div > em')
    adresses = soup.select('#page_list > ul > li > div.result_btm_con.lodgeunitname > div > em')
    links  = soup.select('#page_list > ul > li > a')

    for price,title,type,adress,link in zip(prices,titles,types,adresses,links):
        data = {
            'price': price.get_text(),
            'title' : title.get_text(),
            'types' : type.get_text().split('-')[0].strip(),
            'adress' : adress.get_text().split('-')[2].strip(),
            'link' : link.get('href')
        }
        #print(data)
        sheet_tab.insert_one(data)

def find_fangzi():
    for i in sheet_tab.find():
        if int(i['price']) >= 500:
            print(i)

urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(i)for i in range(3)]
for url in urls:
    container(url)

find_fangzi()

总结和问题

  • strip()去除抓取到的字符串中的空格
  • 面向对象编程--习惯性使用函数

相关文章

网友评论

      本文标题:Python实战计划学习笔记0704

      本文链接:https://www.haomeiwen.com/subject/pobdjttx.html