当前位置: 首页 > wzjs >正文

视频网站前台怎么做怎样做单页微信网站连接

视频网站前台怎么做,怎样做单页微信网站连接,wordpress标签后缀名html,凡客网站做SEO能被收录吗1. 引言 在旅游行业和城市规划中,热门景点的数据分析具有重要意义。通过爬取景点数据并生成热力图,可以直观展示游客分布、热门区域及人流趋势,为商业决策、景区管理及智慧城市建设提供数据支持。 然而,单机爬虫在面对大规模数据…

1. 引言

在旅游行业和城市规划中,热门景点的数据分析具有重要意义。通过爬取景点数据并生成热力图,可以直观展示游客分布、热门区域及人流趋势,为商业决策、景区管理及智慧城市建设提供数据支持。

然而,单机爬虫在面对大规模数据采集时可能面临效率瓶颈。Scrapy-Redis 作为Scrapy的分布式扩展,能够利用多台机器协同爬取数据,大幅提升采集速度和稳定性。本文将介绍如何基于Scrapy-Redis构建分布式爬虫,爬取热门景点数据,并使用 FoliumHeatmap.js 生成交互式热力图。

2. 技术选型

2.1 Scrapy-Redis 简介

Scrapy-Redis 是 Scrapy 的分布式扩展,利用 Redis 作为任务队列和去重存储,实现多台爬虫节点的协同工作。其核心优势包括:

  • 分布式调度:多个爬虫共享待爬队列,避免重复爬取。
  • 断点续爬:Redis 持久化存储任务状态,即使爬虫中断也可恢复。
  • 高效去重:基于 Redis 的集合(Set)或布隆过滤器(Bloom Filter)去重。

2.2 数据存储与分析

  • MongoDB:存储结构化景点数据(名称、评分、评论数、经纬度等)。
  • Folium:Python 地理可视化库,基于 Leaflet.js 生成热力图。
  • Heatmap.js:高性能的热力图渲染库,适合大数据量展示。

3. 系统架构设计

整个系统分为三个模块:

  1. 分布式爬虫(Scrapy-Redis):爬取景点数据并存储至 MongoDB。
  2. 数据预处理:清洗数据并提取经纬度信息。
  3. 热力图生成:使用 Folium + Heatmap.js 进行可视化。

4. 实现步骤

4.1 环境准备

安装依赖:

4.2构建 Scrapy-Redis 爬虫

(1)创建 Scrapy 项目
(2)配置 Scrapy-Redis

修改 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">settings.py</font>**

# 启用 Scrapy-Redis 调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"# Redis 连接配置
REDIS_URL = 'redis://localhost:6379/0'# 数据存储到 MongoDB
ITEM_PIPELINES = {'scrapy_redis.pipelines.RedisPipeline': 300,'scenic_spider.pipelines.MongoPipeline': 400,
}MONGO_URI = 'mongodb://localhost:27017'
MONGO_DB = 'scenic_data'
(3)编写爬虫逻辑

以美团景点为例(**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">meituan_spider.py</font>**):

import scrapy
from scenic_spider.items import ScenicItem
from urllib.parse import urlencode# 代理配置
proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "16QMSOML"
proxyPass = "280651"class MeituanSpider(scrapy.Spider):name = 'meituan_spider'redis_key = 'meituan:start_urls'  # Redis 初始任务队列# 自定义请求头(可选)custom_headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}def start_requests(self):# 从Redis获取初始URL时添加代理for url in self.get_start_urls():yield scrapy.Request(url=url,callback=self.parse,headers=self.custom_headers,meta={'proxy': f'http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}'})def parse(self, response):for scenic in response.css('.scenic-item'):item = ScenicItem()item['name'] = scenic.css('.title::text').get()item['rating'] = scenic.css('.score::text').get()item['reviews'] = scenic.css('.review-num::text').get()item['location'] = scenic.css('.address::text').get()yield item# 翻页逻辑(同样添加代理)next_page = response.css('.next-page::attr(href)').get()if next_page:yield scrapy.Request(url=next_page,callback=self.parse,headers=self.custom_headers,meta={'proxy': f'http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}'})
(4)数据存储(MongoDB Pipeline)
import pymongoclass MongoPipeline:def __init__(self, mongo_uri, mongo_db):self.mongo_uri = mongo_uriself.mongo_db = mongo_db@classmethoddef from_crawler(cls, crawler):return cls(mongo_uri=crawler.settings.get('MONGO_URI'),mongo_db=crawler.settings.get('MONGO_DB'))def open_spider(self, spider):self.client = pymongo.MongoClient(self.mongo_uri)self.db = self.client[self.mongo_db]def close_spider(self, spider):self.client.close()def process_item(self, item, spider):self.db['scenic_spots'].insert_one(dict(item))return item

4.3 分布式运行

启动多个爬虫节点(不同机器或进程):

Redis 会自动分配任务,确保数据不重复爬取。

4.4 数据预处理

从 MongoDB 提取数据并解析经纬度(使用 Geocoding API):

import pandas as pd
from pymongo import MongoClient
import requestsclient = MongoClient('mongodb://localhost:27017')
db = client['scenic_data']
collection = db['scenic_spots']# 获取数据并转为 DataFrame
data = list(collection.find())
df = pd.DataFrame(data)# 调用高德地图API获取经纬度
def get_geocode(address):url = f"https://restapi.amap.com/v3/geocode/geo?key=YOUR_AMAP_KEY&address={address}"res = requests.get(url).json()if res['status'] == '1' and res['geocodes']:lng, lat = res['geocodes'][0]['location'].split(',')return float(lng), float(lat)return None, Nonedf['lng'], df['lat'] = zip(*df['location'].apply(get_geocode))
df.to_csv('scenic_data.csv', index=False)

4.5 生成热力图

使用 Folium + Heatmap.js 渲染热力图:

import folium
from folium.plugins import HeatMapdf = pd.read_csv('scenic_data.csv')
df = df.dropna(subset=['lat', 'lng'])# 创建地图
m = folium.Map(location=[df['lat'].mean(), df['lng'].mean()], zoom_start=12)# 生成热力图
heat_data = [[row['lat'], row['lng'], row['reviews']] for _, row in df.iterrows()]
HeatMap(heat_data, radius=15).add_to(m)# 保存为HTML
m.save('heatmap.html')

打开 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">heatmap.html</font>** 即可看到交互式热力图。

5. 优化与扩展

  • 动态数据更新:结合 Celery 定时爬取最新数据。
  • 3D 热力图:使用 Kepler.gl 进行更高级的可视化。
  • 反爬策略:使用代理池(如 Scrapy-ProxyPool)应对封禁。

6. 结论

本文介绍了基于 Scrapy-Redis 的分布式爬虫系统,从数据采集、存储到热力图生成的完整流程。该方案适用于旅游数据分析、城市规划等领域,并可扩展至其他垂直行业(如餐饮、房产)。未来可结合机器学习预测人流趋势,进一步提升商业价值。


文章转载自:

http://sYJNzLHl.gLbnc.cn
http://UX4fmRRN.gLbnc.cn
http://8c9CLaCP.gLbnc.cn
http://dZBhExUb.gLbnc.cn
http://JhkTVb03.gLbnc.cn
http://yLblk56K.gLbnc.cn
http://KAPQpS8C.gLbnc.cn
http://f0ldu8fN.gLbnc.cn
http://EtrKnJ3f.gLbnc.cn
http://QruKCHhL.gLbnc.cn
http://QgVCvGkW.gLbnc.cn
http://Bgiy0ro6.gLbnc.cn
http://1DMMKW4J.gLbnc.cn
http://hlNlmtIj.gLbnc.cn
http://sNe21R3p.gLbnc.cn
http://ROE3awaH.gLbnc.cn
http://g4OoqWjP.gLbnc.cn
http://Vz6M4825.gLbnc.cn
http://qj5idaU5.gLbnc.cn
http://hMZqsfNh.gLbnc.cn
http://YBhdvgp5.gLbnc.cn
http://RtqusdOL.gLbnc.cn
http://gldwpmcA.gLbnc.cn
http://LPCpoi05.gLbnc.cn
http://eOjLfV5o.gLbnc.cn
http://me8T81o7.gLbnc.cn
http://ItMthjg0.gLbnc.cn
http://I2wfhCem.gLbnc.cn
http://oNGhUeqD.gLbnc.cn
http://3sKmRfdF.gLbnc.cn
http://www.dtcms.com/wzjs/614211.html

相关文章:

  • 网站seo方案建设目标文山住房和城乡建设局网站
  • 远大科技 网站建设小说网站制作
  • 五金技术支持东莞网站建设wordpress仿魔客吧
  • 国内美妆博主从哪个网站开始做个人网站做什么类型好
  • 做网站要自己租服务器wordpress 网络图片不显示
  • 网站建设哪家好?看这里襄阳专业做网站
  • 北京长空建设有限公司网站wordpress 同城生活
  • 响应式网站后台聊城做网站价位
  • 石家庄网站建设推广公司报价音乐分享网站源码
  • 网站右侧二维码阿里云网站备案拍照点
  • 做评测好的视频网站江苏城乡建设学院网站
  • 用npp做网站电商设计就是网站设计吗
  • 网站开发与调试实验报告房地产市场分析
  • 网站优化基础建一个个人网站多少钱
  • 广州公司制作网站什么是关键词举例说明
  • 云建站规划图电影免费在线观看
  • 赫山区网站建设做代收水果是什么网站
  • 怎么在网站上做排名ui手机app界面设计
  • 做公司网站需不需要注册建设个人网站需要备案吗
  • 毕业设计做网站用什么软件百度官网平台
  • 宁波网站推广找哪家公司网站建设业务元提成
  • 网站制作公司中企动力推荐石家庄专门做网站的公司
  • 高端定制网站公司哪家好微信商城小程序怎么做
  • 网站批量收录四川城乡住房和城乡建设厅网站首页
  • 专门做投票的网站有哪些wordpress中调用分类目录文章列表
  • 网站搭建php源码房产中介网站开发
  • 北京网站建设制作方案关键词优化的技巧
  • asp网站栏目修改做网站的人
  • 龙岩网站设计理念网站开发最好用什么语言
  • 重庆建设工程安全管理协会网站网站欢迎界面设计