精华内容
下载资源
问答
  • 网上提供了大量开源数据源,方便我们进行学习,但是这些数据源会随着时间变换,因此萌生一个自动下载数据的方法,刚好网上也有很多的方法,结合别的博客主的方法和自己的理解写了一个利用python自动获取数据的函数。...
    机器学习一个必要的前提条件就是获得大量数据,尤其对于我们刚开始接触机器学习的时候,网上提供了大量开源数据源,方便我们进行学习,但是这些数据源会随着时间变换,因此萌生一个自动下载数据的方法,刚好网上也有很多的方法,结合别的博客主的方法和自己的理解写了一个利用python自动获取数据的函数。
    
    
    相关的库文件:os、tarfile、urllib
    
    import os
    import tarfile
    import urllib
    from urllib.request import urlretrieve
    def download(url,savepath):
        """
        :param url: 下载路径
        :param savepath:保存路径
        :return:
        """
        filename=os.path.basename(url)
        filepath=os.path.join(savefile,filename)
        if not os.path.isdir(savefile):
            #如果不存在我们设置的保存文件夹,则自动生成一个
            os.makedirs(savefile)
            
            #下载文件
            urlretrieve(url,filepath)
            
            #打开我们的文件
            downfile=tarfile.open(filepath)
            
            #解压我们的文件
            downfile.extractall(savefile)
            
            #关闭读写操作
            downfile.close()
            print("download finished")
        else:
            print("file has existed")
    if __name__ == '__main__':
        url="https://raw.githubusercontent.com/ageron/handson-ml/master/datasets/housing/housing.tgz"
        savefile="./chapter1/data"

     

    当然也可以定义一个reporthook函数,能够方便的显示下载进度,这里用不到,所以没有写出来

    展开全文
  • Python爬虫精简步骤 获取数据

    万次阅读 多人点赞 2020-02-14 19:56:34
    爬虫,本质上来说,就是利用程序在网上拿到对我们有价值的数据。 爬虫能做很多事,能做商业分析,也能做生活助手,比如:分析北京近两年二手房成交均价是多少?广州的Python工程师平均薪资是多少?北京哪家餐厅...

    爬虫的工作分为四步:
    1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。
    2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。
    3.提取数据。爬虫程序再从中提取出我们需要的数据。
    4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。

    这一篇的内容就是:获取数据。

    首先,我们将会利用一个强大的库——requests来获取数据。

    在电脑上安装的方法是:Mac电脑里打开终端软件(terminal),输入pip3 install requests,然后点击enter即可;Windows电脑里叫命令提示符(cmd),输入pip install requests 即可。
    出现成功字样
    (requests库可以帮我们下载网页源代码、文本、图片,甚至是音频。“下载”本质上是向服务器发送请求并得到响应。

    Pip是一个Python的包管理工具。)

    先来看requests.get()方法
    requests.get()的具体用法如下:

    import requests
    #引入requests库
    res = requests.get('URL')
    #requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。
    #我们把这个响应返回的结果赋值在变量res上。
    print(type(res))
    #打印变量res的数据类型
    

    Response对象常用的四个属性:
    1. res.status_code
    检查请求是否成功

    print(res.status_code)
    #打印变量res的响应状态码,以检查请求是否成功
    
    响应状态码 说明 举例 说明
    1xx 请求收到 100 继续提出请求
    2xx 请求成功 200 成功
    3xx 重定向 305 应使用代理访问
    4xx 客户端错误 403 禁止访问
    5xx 服务器端错误 503 服务不可用

    2.res.content
    能把Response对象的内容以二进制数据的形式返回,适用于图片、音频、视频的下载

    3.res.text
    可以把Response对象的内容以字符串的形式返回,适用于文字、网页源代码的下载

    4.res.encoding
    能帮我们定义Response对象的编码
    (遇上文本的乱码问题,才考虑用res.encoding)

    小结:
    获取数据,本质就是通过URL去向服务器发出请求,服务器再把相关内容封装成一个Response对象返回给我们,这是通过requests.get()实现的,而获取到的Response对象下有四个以上常用的属性。

    爬虫协议:
    Robots协议是互联网爬虫的一项公认的道德规范,它的全称是“网络爬虫排除标准”(Robots exclusion protocol),这个协议用来告诉爬虫,哪些页面是可以抓取的,哪些不可以。
    如何查看网站的robots协议呢?在网站的域名后加上/robots.txt就可以了。

    展开全文
  • 因为需要从网上抓取楼盘信息,所以研究了一下如何使用Python来实现这个功能。具体步骤如下: 第一步,获取包含楼盘数据的网页HTML源代码。使用urllib库来获取网页数据,代码如下: from urllib import request ...

    Python网络爬虫获取网站楼盘数据

    因为需要从网上抓取楼盘信息,所以研究了一下如何使用Python来实现这个功能。具体步骤如下:

    第一步,获取包含楼盘数据的网页HTML源代码。使用urllib库来获取网页数据,代码如下:

    from urllib import request

    resp = request.urlopen(url)

    html_data = resp.read().decode('utf-8')

    其中url是要打开的网页的网址。执行之后,html_data是字符串类型的变量,用于保存了获取的网页HTML源代码。调用decode方法是为了进行utf-8编码。包含楼盘数据的网址为:https://cd.ixiangzhu.com/House/lists.html?page=1,楼盘太多,所以采用了分页显示,其中page=1中的1表示第一页,如果是第二页则为page=2,依次类推。

     

    第二步,对获取的网页HTML源代码进行分析,从中提取楼盘数据。这个可以借助于BeautifulSoup包完成,利用BeautifulSoup,可以很方便地从网页中提取各种tag。

    (1)   根据对获取到的网页HTML源代码的分析,发现所有的楼盘数据是包含在<div class="house_lists">中,代码如下:

    <!-- 楼盘列表 -->

                        <div class="house_lists">

                                                    <div class="house_item clearfix" data-temp-id="WJ000795">

                                <div class="f_left house_item_img">

                                    <a href="https://cd.ixiangzhu.com/House/detail/WJ000795.html"><img src="https://www.51xiangzhu.com:6080/app/file/img.do?img=/usr/local/img/property/WJ000795/1320x240.JPG" width="230" height="160" /></a>

                                </div>

                                <div class="f_left house_item_info">

                                    <div class="title clearfix">

                                        <a class="f_left" href="https://cd.ixiangzhu.com/House/detail/WJ000795.html">金科星耀天都</a>

                                                                             <span class="price f_right">

                                            <span class="money">11892

                                                                                        元/m&sup2;

                                                                                    </span>

                                        </span>

                                                                            </div>

                                    <div class="info">

                                        <span>在售</span>

                                        <span class="info-price"></span>

                                    </div>

                                    <div class="area">

                                        面积区间: 37m&sup2;

                                    </div>

                                    <div class="address">

                                        <span>[成华区 - 驷马桥]</span>

                                        成华成都市成华区驷马桥昭觉寺南路12号

                                    </div>

                                    <div class="labels">

                                                                                                                                                                                                                <a>多条地铁</a>

                                                                                                                                                                                <a>读书方便</a>

                                                                                                                                                                                <a>熙悦广场</a>

                                                                                                                                                                                <a>便利社区商业</a>

                                                                                                                                                                                                                                                </div>

                                </div>

                                <!-- 客服头像 -->

                                <div class="head_img">

                                    <a href='javascript:;' class='im ' οnclick='easemobim.bind({tenantId:38251})'><p class="text">在线咨询</p></a>

     

                                </div>

                                <!--加入对比-->

                                <div class="add_compare ">

                                    <p class="text" data-id="WJ000795"  data-img="https://www.51xiangzhu.com:6080/app/file/img.do?img=/usr/local/img/property/WJ000795/1320x240.JPG"><img src="https://cd.ixiangzhu.com/foreground/imgs/icon/add.png " alt="" > 添加对比</p>

                                    <p class="have_add" style="display: none">已添加</p>

                                </div>

                            </div>

                                                    <div class="house_item clearfix" data-temp-id="WJ000489">

                                <div class="f_left house_item_img">

                                    <a href="https://cd.ixiangzhu.com/House/detail/WJ000489.html"><img src="https://www.51xiangzhu.com:6080/app/file/img.do?img=/usr/local/img/property/WJ000489/1320x240.JPG" width="230" height="160" /></a>

                                </div>

                                <div class="f_left house_item_info">

                                    <div class="title clearfix">

                                        <a class="f_left" href="https://cd.ixiangzhu.com/House/detail/WJ000489.html">黄龙溪谷</a>

                                                                             <span class="price f_right">

                                            <span class="money">15747

                                                                                        元/m&sup2;

                                                                                    </span>

                                        </span>

                                                                            </div>

                                    <div class="info">

                                        <span>在售</span>

                                        <span class="info-price"></span>

                                    </div>

                                    <div class="area">

                                        面积区间: 167-328m&sup2;

                                    </div>

                                    <div class="address">

                                        <span>[眉山 - 彭山]</span>

                                        剑南大道南延线黄龙古镇旁

                                    </div>

                                    <div class="labels">

                                                                                                                                                                                                                <a>私家车出行方便</a>

                                                                                                                                                                                <a>读书方便</a>

                                                                                                                                                                                                                                                </div>

                                </div>

                                <!-- 客服头像 -->

                                <div class="head_img">

                                    <a href='javascript:;' class='im ' οnclick='easemobim.bind({tenantId:38251})'><p class="text">在线咨询</p></a>

     

                                </div>

                                <!--加入对比-->

                                <div class="add_compare ">

                                    <p class="text" data-id="WJ000489"  data-img="https://www.51xiangzhu.com:6080/app/file/img.do?img=/usr/local/img/property/WJ000489/1320x240.JPG"><img src="https://cd.ixiangzhu.com/foreground/imgs/icon/add.png " alt="" > 添加对比</p>

                                    <p class="have_add" style="display: none">已添加</p>

                                </div>

                            </div>

                                                    <div class="house_item clearfix" data-temp-id="WJ000811">

                                <div class="f_left house_item_img">

                                    <a href="https://cd.ixiangzhu.com/House/detail/WJ000811.html"><img src="https://www.51xiangzhu.com:6080/app/file/img.do?img=/usr/local/img/property/WJ000811/1320x240.JPG" width="230" height="160" /></a>

                                </div>

    (2)   分析观察上面的代码,可以发现每个楼盘的名称是包含在一个<a> 标签中,比如:<a class="f_left" href="https://cd.ixiangzhu.com/House/detail/WJ000795.html">金科星耀天都</a>

    (3)   楼盘的价格是包含在一个<span class="money">标签中,比如:<span class="money">11892元/m&sup2;   </span>

    (4)   利用BeautifulSoup,将包含所有楼盘数据的<div class="house_lists">标签提取出来,实现代码如下:

    from bs4 import BeautifulSoup as bs

    soup = bs(html_d, 'html.parser')

    house_div = soup.find_all('div', class_='house_lists')

    (5)   再进一步提取所有包含楼盘名称的<a> 标签,实现代码如下:

    house_list = house_div[0].find_all('a', class_='f_left')

    其中house_list是一个列表,它包含了所有楼盘的名称。

    (6)   再进一步提取所有包含楼盘价格的<span class="money"> 标签,实现代码如下:

    price_list = house_div[0].find_all('span', class_='money')

    其中price _list是一个列表,它包含了所有楼盘的价格。

    (7)   需要从price _list列表提取楼盘的价格,因为其中保存的字符串中包含了楼盘的价格,内容类似下面的:

    <span class="money">11892元/m&sup2;   </span>

    因为只需要提取其中的数字,所以采用了一个函数专门来实现这个功能。

    (8)   提取楼盘价格的函数如下:

    def getPrice(str):

        digits = '1234567890'

        start_postion = 0

        #下面获取数字的起始位置

        for c in str:

            if c in digits:

                start_postion = str.index(c)

                break

     

       # start_postion保存了起始位置

       #下面切片截取了从数字的起始位置开始一直到字符串结束位置

        tempstr = str[start_postion:len(str)]

     

        end_pos = len(tempstr)

       #下面获取数字的截止位置

        for c in tempstr:

            if c in digits:

                continue

            else:

                end_pos = tempstr.index(c)

                break

     

       # end_pos保存了数字的截止位置

       #下面的切片将楼盘的价格提取出来

        price_str = tempstr[0:end_pos]

        return price_str

    (9)   利用迭代将楼盘名称和价格提取出来,并保存到字典中。实现代码如下:

        for (ahref,aprice) in zip(house_list,price_list):

                    housedictionary[ahref.text] = getPrice(aprice.text)

     

    第三步,将字典中的数据保存到文件中。代码如下:

        with open('allhouse.txt', 'w', encoding='utf-8') as f:

            f.write( str(housedictionary) + '\n' )

            f.close()

    最终,所有的楼盘数据以字符串的形式保存到了文件allhouse.txt中。

    以上代码在Python 3.6.3中运行通过。

    转载于:https://www.cnblogs.com/javatomcat/p/8052952.html

    展开全文
  • 使用python获取彩票数据

    千次阅读 2019-10-13 22:10:17
    新学习了python,尝试从网上获取到了彩票的数据,然后计算了平均值,和方差发现真的是随机。 def write2file(tmpfilename,content): with open(tmpfilename.decode('utf-8'), 'wb+')as f: f_csv = csv.writer(f) ...

    新学习了python,尝试从网上获取到了彩票的数据,然后计算了平均值,和方差发现真的是随机。

    def write2file(tmpfilename,content):
    with open(tmpfilename.decode(‘utf-8’), ‘wb+’)as f:
    f_csv = csv.writer(f)
    f_csv.writerows(content)

    def getfromfile(tmpfilename):
    get_file_data = []
    with open(tmpfilename) as csvfile:
    file_csv_reader = csv.reader(csvfile) #
    for file_row in file_csv_reader: # birth_data中
    get_file_data.append(file_row)
    return get_file_data

    def calc_num_occour_time(calc_data):
    l = 33
    list1 = [[0] for i in range(l)]
    for i in range(len(calc_data)):
    for j in range(1,len(calc_data[i])):
    list1[int(calc_data[i][j])-1][0] = list1[int(calc_data[i][j])-1][0]+1
    return list1
    def get_average(onecalc_data):
    tmpsum =0
    w = 0
    for j in range(1, len(onecalc_data)):
    w = w + 1
    tmpsum = tmpsum + int(onecalc_data[j])
    tmpsum = tmpsum/w
    return tmpsum
    def get_fangcha(onecalc_data):
    tmpfangcha =0
    tmpaverage = get_average(onecalc_data)
    w = 0
    for j in range(1, len(onecalc_data)):
    tmpfangcha = tmpfangcha + (int(onecalc_data[j]) - tmpaverage)**2
    w = w +1
    tmpfangcha = tmpfangcha /(w-1)
    return tmpfangcha
    def calc_average(calc_data):
    list1 =[]
    for i in range(len(calc_data)):
    tmpaver = get_average(calc_data[i])
    fangcha = get_fangcha(calc_data[i])
    list1.append([tmpaver,fangcha])
    return list1
    def removeblue(calc_data):
    for i in range(len(calc_data)):
    del calc_data[i][7]
    return calc_data

    展开全文
  • Python获取Yahoo数据

    千次阅读 2018-06-11 18:42:54
    在学python机器学习,网上找了实战教程,有需要yahoo获取股票数据,但一开始就遇到问题了,折腾了一天。以下给出问题以及解决方法。编程环境:Linux Ubuntu16, python3.6, anaconda 1.6.14, conda 4.5.4, ...
  • # 从网上获取股票交易历史数据 # url = 'http://quotes.money.163.com/service/chddata.html?code=1000001&start=19910401&end=19910409' # url += '&fields=LCLOSE;TOPEN;HIGH;LOW;TCLOSE;CHG;PCHG;...
  • 我用python操作mysql数据库,数据库中数据格式为utf8,我使用python调用select... 我在网上搜集了很多资料,大家都说是windows默认的格式是'GBK',输出mysql数据库中获取到的中文数据时,需要这样写: 假设info是
  • 我们已经可以从网上爬取数据了,现在我们来看看如何对数据解析 文章目录1. xpath 的介绍优点:安装lxml库XML的树形结构:选取节点的表达式举例:2. 爬取起点小说网在浏览器中获取书名和作者测试使用xpath获取起点...
  • 最近开始想搭建一个个人投资研究的数据库,想从网上获取一些股票、基金类的数据,以便做进一步的数据分析。 对比后发现天天基金网(东方财富)上基金数据相对还比较完整,特写了个脚本,实现自动爬取基金基本信息、...
  • 当使用爬虫从网上获取数据时,获得的数据往往存在缺失、异常、格式不正确等情况。面对这些状况百出的原始数据,数据的预处理就显得尤为重要,数据分析师们往往也会在数据预处理上花费许多时间。 数据审核 ...
  • 从网上下载数据,并对这些数据进行可视化。 我们将访问并可视化两种常见格式存储的数据:CSV和JSON。分别使用Python中的csv以及json模块对他们进行处理。 然后,我们再根据下载的数据,使用matplotlib创建一个图标。...
  • 从网上看了些资源发现并没有自己想要的,最好的一个也是多个文件拆分开的而且没有相应股票的代码,所以我弄了个EXCEL整合版本。 首先我们从http://quote.eastmoney.com/stock_list.html获取相应股票: 方法一: CTRL...
  • 目标比较明确,就是GPS坐标得到它所在的国家。网上可以找的比较典型的解决方案是利用一些网站(例如Google)的webservice来完成这个任务,但是这些解决方案有一个比较大的弱点,就是这些webservice会限制请求的...
  • 为了了解跟python数据分析有关行业的信息,大概地了解一下对这个行业的要求以及薪资状况,我决定从网上获取信息并进行分析。既然想要分析就必须要有数据,于是我选择了拉勾,冒着危险深入内部,从他们那里得到了信息...
  • 本人刚才开始学习爬虫,从网上查询资料,写了一个利用Selenium+Phantomjs动态获取网站数据信息的例子,当然首先要安装Selenium+Phantomjs,具体的看 http://www.cnblogs.com/shaosks/p/6526817.html Selenium下载...
  • 只要你想要的数据,都有办法从网上快速获取。今天我们就从一个招聘网站上来分析下深度学习目前就业情况,网站是拉勾网,先采集拉勾网上面的数据,采集的是深度学习岗位的数据,然后用Python进行可视化。主要涉及的是...
  • 现在是"大数据时代",大量的数据可以那里获取 当你为数据而烦恼的时候那你就可以学习网络爬虫。 抓取网络数据:如果你成为一个爬虫工程师那网上的都是你数据。 网络爬虫? ·网络爬虫(又称为网页蜘蛛,网络...
  • 利用Python爬虫进行Web数据挖掘已经越来越普遍,网上的各种Python爬虫资料教程比较多,但是很少有人对Web数据挖掘进行系统地总结和分析。 目标上来讲,Web数据挖掘分为三类。最常见的是对于网站内容的爬取,包括...
  • 项目2:数据可视化之下载数据 摘要 这个章节主要讲怎样去下载和...这章主要做数据处理和简单分析,简单介绍下,csv数据下载后获取范围值以日期绘制折线图可观察两条线之间波动范围大小。json大量的数据分析走势,...
  • 因为最近需要用到股市的各种指数数据,刚开始想的是同花顺等交易软件直接导出,结果发现要用滚轮滚到最开始的日期,这过于繁琐了,我对于这种重复性的劳动一向不耐烦,而且这种方法在以后每日更新的时候也很不方便...
  • 嵩老师的案例中用的数据都是主动生成的,而我,需要excel中先导入数据(目前工作中的数据来源于excel),于是我开始一步步摸索。以下是我遇到的几个问题: 1. 获取excel单元格位置 各论坛的教程都是sheet.cell(row...
  • 其实可以编写一段python代码,在线api,如tushare或baostock下载行情数据到本地CSV文件,网上有文字介绍,但往往不全面,一步一步视频指导请参考这门课程的第2课。 这里要指出几个注意点: 1 tushare下载数据...
  • python分析股票数据

    2021-05-21 20:37:57
    出于对网上数据的不信任,请你帮他快速检验附件一中30只股票的数据是否存在<strong><strong>异常值</strong></strong><strong><strong>(例如股价涨跌幅超过了1</strong></strong><strong><strong>0...
  • 今天在网上冲浪看到一个很花哨的数据,全国各城市主要商圈早上6点到晚上10点的20min,30min,45min,60min,90min生活圈轮廓。 1.获取思路 按下F12 按下F12,点击淮海路可以看到出现一个网站,他就是我们要找的...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 290
精华内容 116
关键字:

python从网上获取数据

python 订阅