python中requests库用网页分析方法获取动态网页

利用python中requests获取动态股市指数行情数据

这里数据来源为东方财富网,代码如下:

import requests


try:
    #主要是获取user-agent,伪装成浏览器,其它的可要,可不要
    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    }
    #url = "http://quote.eastmoney.com/center/gridlist.html#global_asia"
    ##由于之前直接requests请求上述网址,发现元素中无值,因此通过查看浏览器中Network中js获得url
    url = "http://nufm.dfcfw.com/EM_Finance2014NumericApplication/JS.aspx?cb=jQuery11240057810984738995375_1535419901682&type=CT&token=4f1862fc3b5e77c150a2b985b12db0fd&sty=FCRH&js=(%7Bdata%3A%5B(x)%5D%2CrecordsFiltered%3A(tot)%7D)&cmd=R.0000011%2C3990012%2C0003001%2C3990062%2C3990052%2CHSI5%2CHSCEI5%2CHSCCI5%7C_UI_MAP_ASIA&st=y&p=1&ps=20&_=1535419901688"  #p=1表示第一页,ps=20设置请求的一页有20条记录
    web_data = requests.get(url, headers=header)  #Request有三个参数(url,data,headers),如果有使用data就是post请求了,没有就是get请求。这里我没有data,所以我就指定headers=header,不然header就会被当成data了。
    web_data.encoding = "utf-8"
    data = web_data.text
    print(data)
    #以下操作是要是对获取到的数据做一些处理(截取所需字符串,变为列表后输出易于观察)
    #截取字符串中[]以内的数据
    pos_start = data.find("[")
    pos_end = data.find("]")
    print(pos_start, pos_end)
    data = data[pos_start+1:pos_end]
    #字符串以","这三个字符隔开,且以列表保存
    data = data.split('\",\"')
    #除掉列表中首尾位置字符串中的双引号
    data[0] = data[0].replace("\"", "")
    data[-1] = data[-1].replace("\"", "")
    #print(data)
    caption = ["序号", "简称", "名称", "最新价", "涨跌额", "涨跌幅", "更新时间", "未知", "开盘", "最高", "最低", "昨收", "振幅"]
    print(caption)  #字段说明
    #data.insert(0,caption)
    for one in data:
        print(one.replace(",", ",   ")) #间隔拉开一点
except KeyboardInterrupt:
    pass

结果如下图:

猜你喜欢

转载自blog.csdn.net/feiyang5260/article/details/82150845
今日推荐