Python实战计划学习笔记0704

实战计划第六天,学习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()去除抓取到的字符串中的空格
  • 面向对象编程--习惯性使用函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,342评论 25 709
  • 我自己的名字是初一时就设计好了。可能是因为看到明星的签名很帅,所以激发了自己想设计的欲望吧。但是,最初都只是自己在...
    wyw1227阅读 5,020评论 16 4
  • 毛豆是个正能量小宝宝,他会在便便的时候给自己呐喊助威,“你一定能拉的出来!你一定能拉的出来……” 毛豆外婆唬毛豆说...
    贵图子阅读 3,301评论 0 3

友情链接更多精彩内容