精华内容
下载资源
问答
  • 刚学python没几天,打算用paython爬去微博热搜数据试验一下,但是发现微博热搜是动态数据网页源码并不能直接获取想要的数据,network里也并不能找到相关内容,这时重新查看网页源码,发现有类似中文编码的源码,数...

    刚学python没几天,打算用paython爬去微博热搜数据试验一下,但是发现微博热搜是动态数据,网页源码并不能直接获取想要的数据,network里也并不能找到相关内容,这时重新查看网页源码,发现有类似中文编码的源码,数一下正好50个,不出意外这个就是我们需要的内容,但是这一串字符加了干扰,直接把中间所有的数字25删除后解析成中文发现就是微博热搜的主题

    以下是完整代码

    #!python3
    #encoding=utf-8
    import urllib,pymysql,requests,re
    #配置数据库
    config = {
              'host':'127.0.0.1',
              'port':3306,
              'user':'root',
              'password':'123456',
              'db':'weibo',
              'charset':'utf8',
              }
    #链接数据库
    conn=pymysql.connect(**config)
    cursor=conn.cursor()
    #获取热搜源码
    weiboHotFile=requests.get('http://s.weibo.com/top/summary')
    weiboHotHtml=weiboHotFile.text
    #正则表达式匹配URL ,找到title
    hotKey=re.compile(r'td class=\\"td_05\\"><a href=\\"\\/weibo\\/(.*?)&Refer=top\\"')
    hotKeyListBe=hotKey.findall(weiboHotHtml)
    rank=1
    #遍历获取的title 列表
    for title in hotKeyListBe:
        #去除干扰数字
        title=title.replace('25','')
        url='http://s.weibo.com/weibo/'+title
        title=urllib.parse.unquote(title)
        print(str(rank)+' '+title+' '+url+'\n')
        #执行数据语句
        sql='insert into hotsearch (rank,daydate,mindate,title,url) values (%s,curdate(),curtime(),%s,%s)'
        cursor.execute(sql,(rank,title,url))
        rank+=1
        conn.commit()
    cursor.close()
    conn.close()

    创建一个bat 文件,运行python脚本


    展开全文
  • 《猫眼电影实时票房》这个网页是通过动态加载的数据,大约4秒钟就要请求一次服务器,上面的数据每次请求都会产生变化,如果直接用requests请求它的html源代码,并获取不了它的数据网页地址: ...

    《猫眼电影实时票房》这个网页是通过动态加载的数据,大约4秒钟就要请求一次服务器,上面的数据每次请求都会产生变化,如果直接用requests请求它的html源代码,并获取不了它的数据。
    网页地址: https://piaofang.maoyan.com/dashboard?movieId=1211270
    在这里插入图片描述
    需要爬取的内容有:
    猫眼排名,电影名称,综合票房,票房占比,排片场次,排片占比,场均人次,上座率,上映天数

    直接通过这个url请求网页:
    在这里插入图片描述
    结果: 在输出的结果中并没有找到需要得数据,所以这个方法并行不通


    怎么获取动态加载的数据?

    1、在网页中找到传输数据的URL

    在这里插入图片描述

    2、请求数据

    import requests
    import pprint
    url = 'https://box.maoyan.com/promovie/api/box/second.json' #刚才复制的link address
    res = requests.get(url)
    
    • pprint 包含一个“美观打印机”,用于生成数据结构的一个美观视图。格式化工具会生成数据结构的一些表示,不仅可以由解释器正确地解析,而且便于人类阅读。输出尽可能放在一行上,分解为多行时则需要缩进。
    pprint.pprint(res.json())
    

    美化后输出的结果:

    {'data': {'crystal': {'maoyanViewInfo': '378.5',
                          'status': 1,
                          'viewInfo': '697.9',
                          'viewUnitInfo': '万张'},
              'list': [{'avgSeatView': '16.3%',
                        'avgShowView': '25',
                        'avgViewBox': '34.4',
                        'boxInfo': '11794.28',
                        'boxRate': '48.0%',
                        'movieId': 1211270,
                        'movieName': '哪吒之魔童降世',
                        'myRefundNumInfo': '--',
                        'myRefundRateInfo': '--',
                        'onlineBoxRate': '--',
                        'refundViewInfo': '--',
                        'refundViewRate': '--',
                        'releaseInfo': '上映14天',
                        'releaseInfoColor': '#666666 1.00',
                        'seatRate': '44.4%',
                        'showInfo': '140407',
                        'showRate': '38.0%',
                        'splitAvgViewBox': '30.9',
                        'splitBoxInfo': '10603.21',
                        'splitBoxRate': '47.9%',
                        'splitSumBoxInfo': '28.02亿',
                        'sumBoxInfo': '30.41亿',
                        'viewInfo': '342.2',
                        'viewInfoV2': '342.2万'},
                        <---省略部分内容 --->
    

    现在就可以得到一个美观的字典型数据进行参照提取相应的内容,字典的功能之一就是方便查找数据。

    3、查找所有需要的数据

    rank = 0
    for mv in res.json()['data']['list']:#注意字典的层级关系
        rank = rank + 1 #网页中的排名并没有在.json这个url中,就直接循环赋值
        name = mv['movieName']#查找数据
        zhpf = mv['boxInfo']
        pfzb = mv['splitBoxRate']
        ppcc = mv['showInfo']
        ppzb = mv['showRate']
        cjrc = mv['avgShowView']
        szl = mv['avgSeatView']
        syts = mv['releaseInfo']
        print (rank,name,zhpf,pfzb,ppcc,ppzb,cjrc,szl,syts)
    

    运行结果:

    1 上海堡垒 3651.98 54.3% 132944 33.7% 8 5.8% 上映首日
    2 哪吒之魔童降世 1295.51 19.2% 105251 26.7% 4 2.4% 上映15天
    3 使徒行者2:谍影行动 914.45 13.5% 75694 19.2% 4 2.9% 上映3天
    4 烈火英雄 509.42 7.5% 53329 13.5% 3 2.5% 上映9天
    5 红星照耀中国 129.95 1.8% 9332 2.3% 4 3.4% 上映2天
    6 童童的风铃密室 46.97 0.6% 3471 0.8% 5 5.0% 上映首日
    7 桂香街 28.20 0.4% 120 <0.1% 60 50.6% 上映19天
    8 萤火奇兵2:小虫不好惹 28.10 0.4% 2867 0.7% 4 3.1% 展映
    9 古田军号 16.16 0.2% 1337 0.3% 4 3.0% 上映9天
    10 鼠胆英雄 9.90 0.1% 1699 0.4% 2 1.3% 上映8天
    11 银河补习班 9.87 0.1% 1444 0.3% 2 2.2% 上映23天
    12 冰雪女王4:魔镜世界 8.43 0.1% 1295 0.3% 2 2.0% 上映8天
    13 匠心 7.23 0.1% 34 <0.1% 66 56.2% 上映23天
    14 极度危机 6.60 <0.1% 393 <0.1% 5 5.2% 上映首日
    15 狮子王 6.35 <0.1% 483 0.1% 4 3.9% 上映29天
    16 最美的地方遇见你 5.56 <0.1% 236 <0.1% 8 7.3% 上映8天
    17 哈姆雷特 4.26 <0.1% 2 <0.1% 146 73.0% 2016-01
    18 周恩来回延安 4.10 <0.1% 36 <0.1% 36 37.0% 上映87天
    19 赛尔号大电影7:疯狂机器城 3.93 <0.1% 665 0.1% 2 1.8% 上映8天
    20 神奇马戏团之动物饼干 2.48 <0.1% 538 0.1% 3 2.0% 2018-07
    21 李尔王 1.75 <0.1% 1 <0.1% 120 82.7% 展映
    22 丛林历险记 1.74 <0.1% 525 0.1% 2 1.1% 上映2天
    23 游戏人生 零 1.62 <0.1% 23 <0.1% 20 33.3% 上映22天
    24 特别追踪 1.59 <0.1% 4 <0.1% 123 77.9% 2018-09
    25 悲惨世界:25周年纪念演唱会 1.53 <0.1% 1 <0.1% 105 76.0% 展映
    26 跳舞吧!大象 1.35 <0.1% 39 <0.1% 8 8.6% 上映15天
    27 白蛇:缘起 1.00 <0.1% 521 0.1% 2 1.2% 2019-01
    

    注意: 在网页上只能显示27条数据,我第一次运行的时候,《哪吒之魔童降世》排名是第一的,现在重新运行python加载后,排名已经变了,这是正常的

    将数据保存到csv及源码如下:

    #!/usr/bin/env python3
    #-*-coding:utf-8-*-
    import requests,csv
    import pprint
    url = 'https://box.maoyan.com/promovie/api/box/second.json'
    res = requests.get(url)
    pprint.pprint(res.json())
    
    #创建CSV文件,并写入表头信息
    fp = open('G:\maoyan_data.csv','a',newline='',encoding='utf-8')
    writer = csv.writer(fp)
    writer.writerow(('猫眼排名','电影名称','综合票房','票房占比','排片场次','排片占比','场均人次','上座率','上映天数'))
    
    rank = 0
    for mv in res.json()['data']['list']:#注意字典的层级关系
        rank = rank + 1 #网页中的排名并没有在.json这个url中,就直接循环赋值
        name = mv['movieName']#查找数据
        zhpf = mv['boxInfo']
        pfzb = mv['splitBoxRate']
        ppcc = mv['showInfo']
        ppzb = mv['showRate']
        cjrc = mv['avgShowView']
        szl = mv['avgSeatView']
        syts = mv['releaseInfo']
        print (rank,name,zhpf,pfzb,ppcc,ppzb,cjrc,szl,syts)
        # 写入csv数据
        writer.writerow((rank,name,zhpf,pfzb,ppcc,ppzb,cjrc,szl,syts))      
    

    csv结果如下:
    在这里插入图片描述
    如果出现csv乱码,请参照python xpath爬取豆瓣图书Top 250存入csv文件并解决csv乱码问题

    展开全文
  •   然后,确定弹幕数据来自JS实时加载而非XHR。需要注意的是,弹幕的请求数据不是规范的JSON格式。如图: from fake_useragent import UserAgent from requests.exceptions import RequestExc...

     首先,播放影片并打开Chrome开发者工具,选择Network。逐步拖动进度条并观察本地与服务器的请求规律,如图: danmu_request_url_png

      然后,确定弹幕数据来自JS实时加载而非XHR。需要注意的是,弹幕的请求数据不是规范的JSON格式。如图:
    danmu_json_content

     

    from fake_useragent import UserAgent
    from requests.exceptions import RequestException
    from tqdm import tqdm
    import requests
    import time
    import os
    import re
    '''
    想要学习Python?Python学习交流群:984632579满足你的需求,资料都已经上传群文件,可以自行下载!
    '''
    def get_data(mat):
        """
        循环遍历爬取弹幕数据
        :param mat: 偏移量
        :return: list
        """
        # 请求链接
        url = 'https://service.danmu.youku.com/list?jsoncallback=jQuery111207035726936412456_1552483671572&mat={}&mcount=1&ct=1001&iid=959955945&aid=333822&cid=96&lid=0&ouid=0'.format(mat)
        # headers
        headers = {
            'Referer': 'https://v.youku.com/v_show/id_XMzgzOTgyMzc4MA==.html?spm=a2h0k.11417342.soresults.dplaybutton&s=c6c62a475a5d4a14ab48',
            'User-Agent': UserAgent().random
        }
        """
        # 参数
        params = {
            'jsoncallback': 'jQuery11120003560802190473389_1552479833762',
            'mat': mat,
            'mcount': '1',
            'ct': '1001',
            'id': '959955945',
            'aid': '333822',
            'cid': '96',
            'lid': '0',
            'ouid': '0'
            # '_': '1552479833815'  提示:类似时间戳,去掉后不影响数据的获取
        }
        """
        # 获取弹幕
        try:
            response = requests.get(url, headers=headers)
            print(response)
            if response.status_code == 200:
                html = response.text
                # 正则解析(结果为list类型)
                results = re.findall(',\"content\":\"(.*?)\",', html, re.S)
                # 文本存储
                save_dir = './utils/danmu.txt'
                if not os.path.exists(save_dir):  # Determine whether storage path exists, no creation
                    os.mkdir(save_dir)
                with open(save_dir, 'a', encoding='utf-8') as f:
                    f.write(str(results))
                return results
            return None
        except RequestException as e:
            print('Error: ', e.args)
            return None
    
    if __name__ == '__main__':
        for i in tqdm(range(10), desc='Progress'):
            time.sleep(1)
            get_data(str(i))

    展开全文
  • 文章目录运行结果(2020-2-8数据)基本方案数据格式全国疫情地图实现福建省疫情地图实现福州市疫情地图实现其他 ...全国数据来源于腾讯实时疫情动态,直接get到json 福州市数据来源于福建省疾病预...

    说明: 本文是Python可视化技术结合时下热点进行进行开发、讲解的案例,也课程思政的一个形式。文章遵守CSDN平台规定和国家法规(非新闻资质的网站不允许发布疫情数据),对运行结果(2020年2月8日)中涉及数据部分进行屏蔽,同时删除提供数据的网站链接。

    运行结果(2020-2-8当天)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    基本方案

    • web请求用requests
    • 网页内容解析用pyquery、beautifulsoup和正则表达式
    • 地图用pyecharts v1.6.2
    • 数据来源
      • 全国数据来源于“腾讯实时疫情动态网页”,直接get到json
      • 福州市数据来源于“福建省疾病预防控制中心官网”疫情通报页面,需要解析页面

    数据格式

    请参考本人其他两篇中的抓包分析过程
    用Python抓新型冠状病毒肺炎实时数据,绘制市内疫情地图
    用Python抓新型冠状病毒肺炎疫情数据,绘制全国疫情分布图

    全国疫情地图实现

    #%%
    
    import time, json, requests
    import jsonpath
    from pyecharts.charts import Map
    import pyecharts.options as opts
    
    #%%
    
    # 全国疫情地区分布(各省确诊病例)
    def catch_cn_disease_dis():
        timestamp = '%d'%int(time.time()*1000)
        url_area = ('https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
                   '&callback=&_=') + timestamp
        world_data = json.loads(requests.get(url=url_area).json()['data'])
        china_data = jsonpath.jsonpath(world_data, 
                                       expr='$.areaTree[0].children[*]')
        ls_province_names = jsonpath.jsonpath(china_data, expr='$[*].name')
        ls_confirm_vals = jsonpath.jsonpath(china_data, expr='$[*].total.confirm')
        ls_province_confirm = list(zip(ls_province_names, ls_confirm_vals,))  
        return ls_province_confirm, world_data
    
    #%%
    
    ls_province_cfm, dic_world_data = catch_cn_disease_dis()
    print(ls_province_cfm)
    
    #%%
    
    # 绘制全国疫情地图
    def map_cn_disease_dis() -> Map:
        c = (
            Map()
            .add('中国', ls_province_cfm, 'china')
            .set_global_opts(
                title_opts=opts.TitleOpts(title='全国新型冠状病毒疫情地图(确诊数)'),
                visualmap_opts=opts.VisualMapOpts(is_show=True,
                                                  split_number=6,
                                                  is_piecewise=True,  # 是否为分段型
                                                  pos_top='center',
                                                  pieces=[
                                                       {'min': 10000, 'color': '#7f1818'},  #不指定 max
                                                       {'min': 1000, 'max': 10000},
                                                       {'min': 500, 'max': 999},
                                                       {'min': 100, 'max': 499},
                                                       {'min': 10, 'max': 99},
                                                       {'min': 0, 'max': 5} ],                                              
                                                  ),
            )
        )
        return c
    map_cn_disease_dis().render('全国疫情地图.html')
    
    

    福建省疫情地图实现

    # 获取福建省确诊分布数据
    def catch_fj_disease_dis():
        dic_world_data = catch_cn_disease_dis()[1]
        dic_fj_cfm = dict()    
        # 解析福建各个城市的数据
        dic_fj = jsonpath.jsonpath(dic_world_data, 
                                   expr='$.areaTree[0].children[?(@.name=="福建")].children[*]') 
        
        for item in dic_fj:
            if item['name'] not in dic_fj_cfm: 
                dic_fj_cfm.update({item['name']:0})            
            dic_fj_cfm[item['name']] += int(item['total']['confirm'])   
        return dic_fj_cfm  
    
    dic_fj_cfm = catch_fj_disease_dis()
    
    #%%
    
    # 绘制福建省疫情地图
    def map_fj_disease_dis() -> Map:
        # dic_fj_cfm = catch_fj_disease_dis
        ls_fj_cities = [name + '市' for name in dic_fj_cfm.keys()]
        c = (
            Map()
            .add('福建省', [list(z) for z in zip(ls_fj_cities, dic_fj_cfm.values())], '福建')
            .set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter='{b}\n{c}例'))
            .set_global_opts(
                        title_opts=opts.TitleOpts(title='福建新型冠状病毒疫情地图(确诊数)'),
                        visualmap_opts=opts.VisualMapOpts(is_show=True,
                                                          split_number=6,
                                                          is_piecewise=True,  # 是否为分段型
                                                          pos_top='center',
                                                          pieces=[
                                                               {'min': 50},  
                                                               {'min': 30, 'max': 49},
                                                               {'min': 20, 'max': 29},
                                                               {'min': 10, 'max': 19},
                                                               {'min': 1, 'max': 9},
                                                               {'value': 0, "label": '无确诊病例', "color": 'green'} ],                                              
                                                          ),
                    )
        )
        return c
    map_fj_disease_dis().render('福建疫情地图.html')
    

    福州市疫情地图实现

    from pyquery import PyQuery as pq
    from bs4 import BeautifulSoup
    import datetime
    import numpy as np
    import re
    # 获取福建省疾病预防控制中心官网疫情通告列表
    def catch_fz_disease_rpt_list() -> str:    
        session = requests.session()
        crawl_timestamp = int(datetime.datetime.timestamp(datetime.datetime.now()) * 1000)
        keyword = {'txtkeyword':'福建省新增新型冠状病毒感染的肺炎疫情情况'}
        html = '' 
        while True:
            try:
                rsp = session.get('http://www.fjcdc.com.cn/search', params=keyword)
            except requests.exceptions.ChunkedEncodingError:
                continue
            
            rsp.raise_for_status()  # 非200则抛出异常(rsp.status_code != 200)
            html = rsp.content
            break 
        return html
    
    #%%
    
    html = catch_fz_disease_rpt_list()
    
    #%%
    
    # 获取最新一期的疫情通告链接地址
    def catch_fz_disease_latest_rpt():    
        # html = catch_fz_disease_rpt_list()
        doc = pq(html)
        # 方法一:第一条数据,doc('.list li a').attr.href即可得到所要链接
        # 方法二:指定日期, doc('.list li:contains("2020-02-02") a').attr.href
        # 但是这里咱们多写点,练习嘛,乱写
        news = doc('.list li').items()
        dates = []
        for item in news:
            date_str = item('span').text().strip() 
            date = datetime.datetime.strptime(date_str,'%Y-%m-%d')
            dates.append(date)
        
        temp = np.array(dates)
        latest_date = temp.max()
        latest_date_str = latest_date.strftime('%Y-%m-%d')
        latest_date_url = doc('.list li:contains("{0}") a'.format(latest_date_str)).attr.href
        latest_date_url = 'http://www.fjcdc.com.cn' + latest_date_url
        return latest_date_url
     
    
    #%%
    print(catch_fz_disease_latest_rpt())
    #%%
    
    # 解析网页,获取确诊和疑似病例数据文本
    def catch_fz_disease_dis():
        latest_date_url = catch_fz_disease_latest_rpt()
        soup = ''
        while True:
            try:
                rsp = requests.session().get(latest_date_url)
            except requests.exceptions.ChunkedEncodingError:
                continue
            
            rsp.raise_for_status()  # 非200则抛出异常(rsp.status_code != 200)
            
            soup = BeautifulSoup(rsp.content, 'lxml')
            # print(soup)
            break 
        
        reg = re.compile('.*福州市.*')
        soup = soup.find('div', class_='showCon')
        tag = soup.find_all(text=reg)
        if len(tag) != 4:
            raise Exception('查找到值的次数必须等于 4. 实际值为: {}'.format(len(tag))) 
        
        area_data = {}
        # area_data.update({'confirm_added':tag[0]})      
        # area_data.update({'suspend_added':tag[1]})
        area_data.update({'confirm':tag[2]})      
        area_data.update({'suspend':tag[3]})
        return area_data
    #%%
    fz_data = catch_fz_disease_dis()
    print(fz_data)
    #%%
    import re
    # 解析各区县数据
    def exact_towns_dis():  
        # fz_data = catch_fz_disease_dis()
        pattern = re.compile('(?<=、|()\D+[市|县|区]\d+例')
        town_list = pattern.findall(fz_data['confirm'])
        # town_list = fz_data['confirm'].split('(|(')[1].split('))')[0].split('、')
        
        # 平潭单列,不处理 
        town_data = {'福州市区':0} 
        for town in town_list:
            match_num = re.search(r'\d+(?=例)', town)
            match_town_name = re.search(r'\D+[市|县|区]', town)
            if match_num and town:
                match_num = int(match_num.group())
                match_town_name = match_town_name.group()
            else:
                continue
            
            if match_town_name == '长乐区':  # 地图中长乐为市
                match_town_name = '长乐市'   
                
            town_data.update({match_town_name: match_num})  
            
            # 晋安、鼓楼、马尾、仓山、台江
            if match_town_name[-1] == '区' :  
                town_data['福州市区'] += match_num
        return town_data
        
       
    #%%
    fz_town_data = exact_towns_dis()
    print(fz_town_data)
    
    
    #%%
    from pyecharts.commons.utils import JsCode
    def map_fz_disease_dis() -> Map:
        # fz_town_data = exact_towns_dis()
        # ls_fz_towns = [name + '市' for name in fz_town_data.keys()]
        c = (
            Map()
            .add('福州市(不含平潭)', [list(z) for z in zip(fz_town_data.keys(), fz_town_data.values())], '福州')
            .set_series_opts(label_opts=opts.LabelOpts(is_show=True,
                                                       #  return params.value[2]; // 不存在这个值,写个错误的让地图绘制默认值                                       
                                                       formatter=JsCode("""
                                                               function(params){                                                                                                         
                                                                    if (typeof(params.data) == 'undefined') {
                                                                        return params.value[2];  
                                                                    } else {                                             
                                                                        return params.data.name 
                                                                         + params.data.value + '例';
                                                                    }                                                                                                                 
                                                               }"""
                                                       ))
                             ) 
            .set_global_opts(
                title_opts=opts.TitleOpts(
                    title='福州市新型冠状病毒疫情地图',
                    subtitle='其中,福州主城区(晋安、马尾、鼓楼、仓山、台江)\n共确诊{}例'.format(fz_town_data['福州市区'])),
                visualmap_opts=opts.VisualMapOpts(is_show=True,
                                                  split_number=6,
                                                  is_piecewise=True,  # 是否为分段型
                                                  pos_top='center',
                                                  pieces=[  
                                                       {'min': 20},
                                                       {'min': 10, 'max': 19},
                                                       {'min': 5, 'max': 9},
                                                       {'min': 1, 'max': 4}]                                             
                                                  )
               )
            
        )
        return c
    #%%
    map_fz_disease_dis().render('福州疫情地图.html')
    

    其他

    请参考本人其他篇绘制抓取实时数据,使用Basemap绘制分布图,使用plt绘制走势图的博文。

    另外,pyecharts使用案例:
    用Python pyecharts v1.x 绘制图形(一):柱状图、柱状堆叠图、条形图、直方图、帕累托图、饼图、圆环图、玫瑰图
    用Python pyecharts v1.x 绘制图形(二):折线图、折线面积图、散点图、雷达图、箱线图、词云图

    展开全文
  • Python爬取疫情实战

    2020-08-03 23:33:13
    这里写自定义目录标题Python爬取疫情实战项目环境爬取疫情数据用到的包爬取使用的网站获取中国疫情总信息获取中国各省市的详细信息向数据库中插入、更新数据创建数据库用到的包编写连接、断开连接数据库函数插入以及...
  • 比方说,我现在想爬实时更新:新型冠状病毒肺炎疫情地图 (baidu.com)里面美国日增病例数据,但这里面美国日增数据是以线图的形式展现的,如图 所以我们要先分析一下它的html文本内容,看看网页有没有完整的线图中...
  • 在之前的爬虫豆瓣电影Top250学习中,爬取的内容都直接在网页源码中,而实际上很多数据都是在网页实时AJAX请求,并不会显示在源代码中 例如豆瓣电影分类排行榜 - 动作片为例,打开F12,选择Network---&gt;XHR,...
  • python爬取全国肺炎每日统计信息

    千次阅读 2020-01-29 20:55:12
    数据源来自tx新闻的实时疫情新闻页面 网页链接 import requests,re import json import csv url = 'https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_cn_day_counts' html = requests.get(url).text unicode...
  • Python多线程爬取海外新型肺炎每日实时更新新数据,并存入本地csv文件! 1. 爬取的内容。 网址:实时更新数据 内容: 2. 分析网页 观察网页发现,后台的数据是通过AJAX传递过来的,每一个国家的数据都在一个url里面...
  • 去哪儿是中国领先的在线OTA网站,为消费者提供机票、酒店、会场 、度假...小编今天准备爬取去哪儿的攻略库,并制作了一份详细的数据分析、可视化的旅行攻略。 网页分析 爬虫流程三步曲: 打开网站,分析网页上的数据
  • 这次爬取的是动态网页,所谓动态网页就是动态网页是指网页文件里包含了程序代码,通过后台数据库与Web服务器的信息交互,由后台数据库提供实时数据更新和数据查询服务。它的数据不会直接出现在网页的源码里,它是...
  • 二、使用python+selenium+phantomjs爬取国家地表水水质自动监测实时数据发布系统数据 1、爬虫思路 网址: 国家地表水水质自动监测实时数据发布系统 网站为动态加载页面,注意区别一般的静态页面。 右击查看...
  • python网络爬虫 静态网页爬取概述 静态网页介绍 在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为“静态网页”,静态网页是标准的HTML...动态网页数据传递的过程,实时更新。静态网页
  • python爬虫实战--爬取猫眼专业版-实时票房

    万次阅读 热门讨论 2018-08-13 08:36:00
    最近闲来无事,发现了猫眼专业版-实时票房,可以看到在猫眼上映电影的票房数据,便验证自己之前学的python爬虫,爬取数据,做成.svg文件。 爬虫开始之前 我们先来看看猫眼专业版-实时票房这个网页,看看我们要爬取...
  • hello,大家好,我是wangzirui32,今天来教大家如何爬取比特币实时价格,并通过GUI窗体展示,开始学习吧! 1. 网页分析 在本章使用的数据来自https://www.coindesk.com/price/bitcoin,开始分析: 待会我们会用bs4...
  • 爬虫着实是数据采集中的神器,借助于爬虫的合理设计与实现我们能够很方便地从网络环境中采集到所...这里需要做的就是对历史数据做一个爬取,我们选用的网站在这里,网页截图如下: 第一眼看到的时候就给人一种...
  • Python爬虫学习分享(疫情数据爬取+可视化)

    万次阅读 多人点赞 2020-04-05 18:38:47
    这次重大疫情,每时每刻数据都有可能变化,这篇博文将为大家讲解如何爬取实时疫情数据,并且分析数据,作出数据可视化的效果。 疫情网站有两种,一种是类似丁香园(https://ncov.dxy.cn/ncovh5/view/pneumonia)这种...
  • 一、前言 这篇blog跟python+selenium+phantomJS爬取国家地表水水质自动监测实时数据发布系统——动态网页爬虫的爬虫思路非常类似。 但由于原来的国家地表水水质自动监测实时数据发布系统进行了改版,而且新版本的...
  • 这篇blog跟python+selenium+phantomJS爬取国家地表水水质自动监测实时数据发布系统——动态网页爬虫的爬虫思路非常类似。但由于原来的国家地表水水质自动监测实时数据发布系统进行了改版,而且新版本的网页向我们...
  • 利用python的requests库以及wxpy库,前者用来爬取网页,后者用来将爬到的内容发送给自己。 程序介绍: 需要的库: import wxpy #用来登录网页版微信并发信息 import requests #用来爬取网页 import json #方便处理...
  • 为了实时获取新浪新闻网页实时数据,采用selenium爬虫方法;为了在没有图形界面系统而无法弹窗如服务器上运行,可以使用firefox或chrome的headless模式,而PhantomJS已经不被selenium支持了。 直接上代码: #!/usr...
  • 前言: 在爬虫过程中,我们可能需要重复的爬取同一个网站,为了避免重复的数据存入我们的数据库中 通过实现增量去重 去解决这一问题 本文还针对了那些需要实时更新的网站 增加了一个定时爬取的功能; 本文作者同开源...
  • 上图就是百度实时热点的界面,本次的任务就是爬取到排行榜上的前50排名的关键词以及它的搜索指数。用到的库:1、selenium 2、BeautifulSoup 3、xlwt(一):分析:爬取一个网页的首要工作是分析网页的源代码:可以看到tr...
  • 前言: 在爬虫过程中,我们可能需要重复的爬取同一个网站,为了避免重复的数据存入我们的数据库中 通过实现增量去重 去解决这一问题 本文还针对了那些需要实时更新的网站 增加了一个定时爬取的功能; 本文作者同开源...
  • 前言: 在爬虫过程中,我们可能需要重复的爬取同一个网站,为了避免重复的数据存入我们的数据库中 通过实现增量去重 去解决这一问题 本文还针对了那些需要实时更新的网站 增加了一个定时爬取的功能; 解决思路: 1....

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

python爬取网页实时数据

python 订阅