Kotlin采集美团商家信息 同行竞争价格监控

2024-01-04

“南方小土豆”挤爆哈尔滨旅游市场,一个冬天让哈尔滨火出了圈,让全国观众看见了不一样的逆向旅游热,虽说我心驰神往,但是无奈加班敲代码,连休息的时间都没有。前段时间我通过用java写了一个美团爬虫程序,今天我 利用java的Kotlin库来写个美团商家爬虫,监控同行价格信息,并做出对比,了解同行竞争对手的信息。

在这里插入图片描述

爬虫程序的代码和步骤如下:

import java.net.URLConnection
import java.util.*

fun main(args: Array<String>) {
    val proxyHost = "duoip" // 代理服务器地址
    val proxyPort = 8000 // 代理服务器端口
    val url = URL("meituan") // 爬取的网址
    val proxyHost= "提取免费ip" // jshk.com.cn/mb/reg.asp?kefu=xjy&csdn
    val proxy = Proxy(Proxy.Type.HTTP, java.net.InetSocketAddress(proxyHost, proxyPort))
    val connection = URL(url).openConnection()
    connection.setRequestProperty("Proxy-Connection", "Keep-Alive")
    connection.setRequestProperty("User-Agent", "Mozilla/5.0")
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded")
    connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,en;q=0.6")

    val cookieParams = connection.getHeaderFields().get("Cookie").split(",")
    if (cookieParams.isNotEmpty()) {
        connection.setRequestProperty("Cookie", cookieParams.joinToString("; "))
    }

    connection.connect()
    connection.responseCode
}

每行代码的解释如下:

1、 val proxyHost = "duoip" :指定代理服务器的地址为 duoip

2、 val proxyPort = 8000 :指定代理服务器的端口为 8000

3、 val url = URL("meituan") :指定要爬取的网址为 meituan

4、 val proxy = Proxy(Proxy.Type.HTTP, java.net.InetSocketAddress(proxyHost, proxyPort)) :创建一个代理对象,指定代理类型为 HTTP,代理地址为 duoip ,代理端口为 8000

5、 val connection = URL(url).openConnection() :创建一个 URLConnection 对象,指定要连接的网址为 meituan

6、 connection.setRequestProperty("Proxy-Connection", "Keep-Alive") :设置请求头的 “Proxy-Connection” 为 “Keep-Alive”,表示连接应该在请求完成后保持打开状态。

7、 connection.setRequestProperty("User-Agent", "Mozilla/5.0") :设置请求头的 “User-Agent” 为 “Mozilla/5.0”,表示客户端使用的浏览器类型。

8、 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded") :设置请求头的 “Content-Type” 为 “application/x-www-form-urlencoded”,表示请求主体的类型。

9、 connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,en;q=0.6") :设置请求头的 “Accept-Language” 为 “zh-CN,zh;q=0.8,en;q=0.6”,表示客户端接受的语言。

10、 val cookieParams = connection.getHeaderFields().get("Cookie").split(",") :获取响应头中的 “Cookie”,并以 “,” 分割,得到一个字符串数组。

11、 if (cookieParams.isNotEmpty()) { connection.setRequestProperty("Cookie", cookieParams.joinToString("; ")) } :如果 “Cookie” 不为空,设置请求头的 “Cookie” 为字符串数组中的元素,以 "; " 分隔。

12、 connection.connect() :建立连接。

13、 connection.responseCode :获取服务器返回的状态码。

上面就是全部的代码内容了,介绍的很详细,也许有一些不完善的地方,欢迎大佬随时指正,不说了,已经买好了去哈尔滨的机票了,趁着热度未减,我也当一回南方的小土豆,看看美丽的哈尔滨冰雪世界。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin采集美团商家信息 同行竞争价格监控 的相关文章

  • Pandas dataframe:每批行的操作

    我有一个熊猫数据框df我想计算每批行的一些统计信息 例如 假设我有一个batch size 200000 对于每批batch sizerows 我想要一列的唯一值的数量ID我的数据框 我怎样才能做这样的事情呢 这是我想要的一个例子 prin
  • 字符串中的注释和注释中的字符串

    我正在尝试使用 Python 和 Regex 计算 C 代码中包含的注释中的字符数 但没有成功 我可以先删除字符串以删除字符串中的注释 但这也会删除注释中的字符串 结果会很糟糕 是否有机会通过使用正则表达式来询问不匹配注释中的字符串 反之亦
  • “一旦获取切片就无法更新查询”。最佳实践?

    由于我的项目的性质 我发现自己不断地从查询集中取出切片 如下所示 Thread objects filter board requested board id order by updatedate 10 但这给我带来了实际对我选择的元素进
  • 小部件之间的自定义信号

    尝试将信号从一个 gtk EventBox 子级发送到另一个 在 init HeadMode 第 75 行 上出现错误 类型错误 未知信号名称 消息发送 why usr bin env python coding utf8 import p
  • 如何在Python中高效地添加稀疏矩阵

    我想知道如何在Python中有效地添加稀疏矩阵 我有一个程序 可以将大任务分解为子任务 并将它们分配到多个 CPU 上 每个子任务都会产生一个结果 一个 scipy 稀疏矩阵 格式为 lil matrix 稀疏矩阵尺寸为 100000x50
  • 根据 Pandas 中的列表对多列进行排序

    感谢有关如何根据 pandas 中的倍数列表对给定多列进行排序的任何提示 如下所示 import pandas as pd sort a a d e sort b s1 s3 s6 sort c t1 t2 t3 df pd DataFra
  • 将 numpy 代码点数组与字符串相互转换

    我有一个很长的 unicode 字符串 alphabet range 0x0FFF mystr join chr random choice alphabet for in range 100 mystr re sub W mystr 我想
  • 编辑 Jupyter Notebook 时 VS Code 中缺少“在选择中查找”

    使用 Jupyter Notebook 时 VSCode 中缺少 在选择中查找 按钮 它会减慢开发速度 所以我想请问有人知道如何激活它吗 第一张图显示了在 python 文件中的搜索 替换 第二张图显示了笔记本电脑中缺少的按钮 Python
  • ValueError:不支持连续[重复]

    这个问题在这里已经有答案了 我正在使用 GridSearchCV 进行线性回归的交叉验证 不是分类器也不是逻辑回归 我还使用 StandardScaler 对 X 进行标准化 我的数据框有 17 个特征 X 和 5 个目标 y 观察 约11
  • CNTK 抱怨 LSTM 中的动态轴

    我正在尝试在 CNTK 中实现 LSTM 使用 Python 来对序列进行分类 Input 特征是固定长度的数字序列 时间序列 标签是 one hot 值的向量 Network input input variable input dim
  • 迭代列表的奇怪速度差异

    我创建了两个重复两个不同值的长列表 在第一个列表中 值交替出现 在第二个列表中 一个值出现在另一个值之前 a1 object object 10 6 a2 a1 2 a1 1 2 然后我迭代它们 不对它们执行任何操作 for in a1 p
  • 如何在 Azure 数据工厂 - Databricks 中使用 continuation_token 获取 ADF Pipeline 运行详细信息的下一页?

    我在用 adf client pipeline runs query by factory resourceGroupName 工厂名称 过滤器参数 的方法azure mgmt datafactory DataFactoryManageme
  • 为什么我应该使用 WSGI?

    使用 mod python 一段时间了 我读了越来越多关于 WSGI 有多好的文章 但没有真正理解为什么 那么我为什么要切换到它呢 有什么好处 这很难吗 学习曲线值得吗 为了用 Python 开发复杂的 Web 应用程序 您可能会使用更全面
  • 在 Spyder 的变量资源管理器中查看局部变量

    我是 python 新手 正在使用 Spyder 的 IDE 我欣赏它的一项功能是它的变量资源管理器 然而 根据一些研究 我发现它只显示全局变量 我找到的解决方法是使用检查模块 import inspect local vars def m
  • 使用 pybtex 将 bibtex 转换为格式化的 HTML 参考书目,例如哈佛风格

    我正在使用 Django 并将 bibtex 存储在我的模型中 并且希望能够以格式化 HTML 字符串的形式向我的视图传递引用 使其看起来像哈佛引用样式 使用中描述的方法Pybtex 无法识别 bibtex 条目 https stackov
  • Flask 应用程序的测试覆盖率不起作用

    您好 想在终端的 Flask 应用程序中测试 删除路由 我可以看到测试已经过去 它说 test user delete test app LayoutTestCase ok 但是当我打开封面时 它仍然是红色的 这意味着没有覆盖它 请有人向我
  • Python对象初始化性能

    我只是做了一些快速的性能测试 我注意到一般情况下初始化列表比显式初始化列表慢大约四到六倍 这些可能是错误的术语 我不确定这里的行话 例如 gt gt gt import timeit gt gt gt print timeit timeit
  • OSX 上的 locale.getlocale() 问题

    我需要获取系统区域设置来执行许多操作 最终我想使用 gettext 翻译我的应用程序 我打算在 Linux 和 OSX 上分发它 但我在 OSX Snow Leopard 上遇到了问题 python Python 2 5 2 r252 60
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du

随机推荐

  • Python基础(十六、数据容器汇总)

    文章目录 一 数据容器汇总 二 数据容器通用操作 1 遍历 2 通用统计 len 容器 max 容器 min 容器
  • 解决重定向导致的cookie丢失

    转发前加上 String s response getHeader Set Cookie s HttpOnly Secure SameSite None response setHeader Set Cookie s
  • Java编写CS架构学生管理系统

    一 环境准备 工具 eclipse navicat 环境 jdk8 数据库 mysql5 7 二 正式开始 第一步 分析需求 就是我们需要知道该干什么 登录功能 对学生信息增删改查操作 第二步 创建项目StudentManager 由于我们
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • How to collect data

    How to collect data 爬虫 Java Python 反爬虫 自动化测试工具 Selenium QMetry Automation Studio Te
  • 【ESP32接入国产大模型之文心一言】

    1 怎样接入文心一言 随着人工智能技术的不断发展 自然语言处理领域也得到了广泛的关注和应用 在这个领域中 文心一言作为一款强大的自然语言处理工具 具有许多重要的应用价值 本文将重点介绍如何通过ESP32接入国产大模型之文心一言api 以及其
  • 公司PCB设计需要外包,需要准备哪些资料给PCB设计公司呢?

    现阶段许多公司仍然是让硬件工程师来进行PCB设计和方案开发 除开这些 硬件工程师还要做更多的专业工作 这样势必会使产品上市的时间大大延长 而且现在随着高速数字电子技术的发展 对高速PCB设计的要求也越高 信号完整性仿真分析 nbsp 时序分
  • 14.10-其他阻塞和非阻塞混合使用的原则

    其他阻塞和非阻塞混合使用的原则 1 同时使用阻塞和非阻塞赋值 2 对同一变量既阻塞赋值又非阻塞赋值 综合出错 原则5 不要在同一个always块中同时使用阻塞和非阻塞赋值 1 同时使用阻塞和非阻塞赋值 Verilog语法并没有禁止将阻塞和非
  • DriveMLM

    本人转载于大佬 大型语言模型为智能驾驶开辟了新的格局 赋予了他们类似人类的思维和认知能力 本文深入研究了大型语言模型 LLM 在自动驾驶 AD 中的潜力 进而提出了DriveMLM 这是一种基于LLM的AD框架 可以在仿真环境中实现闭环自动
  • 协议茶馆:TLV 格式及编码

    本篇是多年前的存篇 出处不详 旧酒换新瓶 温故知新 有了新的理解 一 什么是 TLV 格式 几乎所有的通信都有协议 而几乎所有的需要在卡片和终端之间传送的数据 结构 都是 TLV 格式的 TLV 是 tag length 和 value 的
  • Spring框架-入门(IOC,DI)

    文章目录 Spring框架 简介 创建Spring项目 理解IOC和DI IOC控制反转 示例
  • Spring框架-Spring Bean管理

    文章目录 Spring Bean管理 Spring Bean 配置方式 使用XML配置方式 User java
  • 11.使用递归求一个整数的每一位并且求和

    使用递归求一个整数的每一位 public class Main public static void print int n if n lt 10 System out println n 10 return print n 10 Syst
  • 用C语言采集游戏平台数据并做行业分析

    游戏一直深受90 00后的喜爱 有些人因为对游戏的热爱还专门成立了工作室做游戏赚钱 但是游戏行业赚钱走不好就会被割一波韭菜 那么现在什么游戏挣钱 什么游戏好玩认可度高 带着这样的问题我将利用我毕生所学 写了下面一段爬虫程序 这是一个用C 编
  • 夺冠!特等奖!实在Agent智能体闪耀“2023首届全国人工智能应用场景创新挑战赛总决赛”

    为贯彻落实国务院 新一代人工智能发展规划 及科技部 教育部等六部委联合印发的 关于加快场景创新 以人工智能高水平应用促进经济高质量发展的指导意见 中国人工智能学会 科技部新一代人工智能发展研究中心 东莞市人民政府 联合发起主办 2023首届
  • Redis生产环境最佳实践

    欢迎关注公众号 通过文章导读关注 11来了 及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景 中间件系列笔记 和 编程高频电子书 文章导读地址 点击查看文
  • macbook录屏快捷键大全,教你快速录制视频

    有人知道macbook电脑有录屏快捷键吗 现在录屏的速度太慢了 每次打开都要浪费不少时间 要是有录屏快捷键 应该会快很多 有哪位大佬知道吗 教教我 无论是在工作还是生活中 电脑已成为不可或缺的工具 而macbook作为苹果公司推出的一款笔记
  • MIT_线性代数笔记:第 23 讲 微分方程和 exp(At)

    目录 微分方程 Differential equations 矩阵指数函数 Matrix exponential e A t e At
  • SSM+数据库原理课程考试网站-计算机毕业设计源码78952

    摘 要 信息化社会内需要与之针对性的信息获取途径 但是途径的扩展基本上为人们所努力的方向 由于站在的角度存在偏差 人们经常能够获得不同类型信息 这也是技术最为难以攻克的课题 针对在线考试等问题 对如何通过计算机在线考试进行研究分析 然后开发
  • Kotlin采集美团商家信息 同行竞争价格监控

    南方小土豆 挤爆哈尔滨旅游市场 一个冬天让哈尔滨火出了圈 让全国观众看见了不一样的逆向旅游热 虽说我心驰神往 但是无奈加班敲代码 连休息的时间都没有 前段时间我通过用java写了一个美团爬虫程序 今天我 利用java的Kotlin库来写个美