微博签到数据集,目前全网搜到的多为较老的 800w 数据集或已下线的接口,没有多大参考价值。
所以自研了一个系统,可以抓取全国任意城市的微博签到数据,单城市签到微博去重最多可达 100w+,字段包括经纬度、签到地点、微博链接、博主链接、内容、图片链接(图片可下载)、发布时间、转评赞数等数十个字段。下面是深圳 2022 年 4 月底最新微博签到数据集:
在这里插入图片描述
共计 50w,csv 文件 330M。
除了深圳,全国其他任意城市也可,如果一个城市需要更多数据,则需要定时增量抓取,北上广深杭一线城市达到 100w 数据量应该是不难的。
将上述深圳数据集的全部签到点(大概 3000 个)全部可视化在地图上,如下图所示:
在这里插入图片描述
经纬度坐标应该不是 WGS84,验证应该是 GCJ-02 坐标系,所以整体相对于 GPS 坐标系应该有非常小的非线性偏移。WGS84 可以转化成 GCJ-02 坐标系,反过来则不行。
地图可视化的主要代码如下:

def show_map(csv_path):
    df = pd.read_csv(csv_path)
    city = df.loc[0, 'title']
    focus_lat = df.loc[0, 'lat']
    focus_lng = df.loc[0, 'lon']
    m = folium.Map(location=[focus_lat, focus_lng], zoom_start=10, zoom_control=True, tiles='OpenStreetMap')
    for index, row in df.iterrows():
        latitude = row['lat']
        longitude = row['lon']

        if float(latitude) < 0:
            continue

        name = row['title']
        page_link = f"https://weibo.com/p/100101{row['poiid']}"

        icon_img = row['poi_pic']

        html = folium.Html(
            '<img src="{}" style="width: 80px; height:80px"/><br><b>name: {}</b></br> <b>lon: {}</b></br> <b>lat: {}</b></br> <b>link: <a href="{}">{}</a></b></br>'.format(
                icon_img, name, longitude,
                latitude, page_link, page_link), script=True)
        pop = folium.Popup(html=html, max_width=350)
        icon = CustomIcon(icon_image='loc.png', icon_size=(20, 20))
        folium.Marker([latitude, longitude], icon=icon, popup=pop, tooltip=parse_zhch(name)).add_to(m)

    m.save(f'{city}.html')
    wb.open(f'{city}.html')

数据集获取地址:https://afdian.net/item?plan_id=89212c5ad10511ec9a0852540025c377

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐