python爬取同花顺_Java爬取同花顺股票数据(附源码)

本文介绍了如何使用Java和Selenium模拟浏览器操作,爬取同花顺网站上的股票数据,并将其存储到数据库中。通过解析HTML获取板块URL,然后逐页抓取股票信息,包括股票代码、名称、价格等,并详细展示了代码实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近有小伙伴问我能不能抓取同花顺的数据,最近股票行情还不错,想把数据抓下来自己分析分析。我大A股,大家都知道的,一个概念火了,相应的股票就都大涨。

如果能及时获取股票涨跌信息,那就能在刚开始火起来的时候杀进去,小赚一笔。但是股票那么多,小伙伴也盯不过来,于是就微信问我,能不能抓取同花顺的板块下的股票信息存到数据库里?他就能根据数据库里的数据,制定一些策略。

俗话说:哪里有痛点,哪里就有编程!不就是个同花顺嘛,办他!

调研背景

于是我点开了同花顺的板块页面:http://q.10jqka.com.cn/gn/ 发现有好268个概念:

分析概念板块的网页HTML发现,268个概念的URL就在HTML中:

打开其中的“阿里巴巴概念”,发现网页又有分页:

分页的数据,是根据接口实时获取的,接口中注入了一些Cooki信息和其他标识,同花顺的反爬虫策略一直比较强,使用模拟接口的方式可能难度会比较大,所以使用selenium模拟浏览器操作这种方式比较完美。

设计方案

技术方向有了,再简单整理一下思路:根据http://q.10jqka.com.cn/gn/,获取板块网页的源码HTML,用Jsoup解析HTML获取每个概念的url信息放到List中

遍历List,根据概念的url获取概念网页源码HTML,解析股票信息

再递归点击执行“下一页”操作,获取每一页的股票数据,直至尾页

把股票信息存储到数据库

配置环境

先介绍下工程所需要的环境:编码工具:idea 语言:java 依赖:jdk1.8、maven、chrome、ChromeDriver

我们使用的方案是模拟浏览器的操作,所以我们需要在电脑安装chrome浏览器和chromedriver驱动。chrome的安装这里就不说了,百度下载个浏览器就行。

关键是安装 ChromeDriver ,需要安装和当前chrome版本一致的驱动才写。

查看chrome版本:chrome浏览器输入:Chrome://version

在根据版本下载对于的驱动,版本最好要一致,比如我的是:79.0.3945.117 (正式版本) (64 位),我下载的就是 79.0.3945.36。

ChromeDriver各版本的下载地址:

下面这一步可做可不做,不做也能启动工程,只是需要修改代码中的一个配置即可。配置方式:

将下载好的ChromeDriver文件放到/usr/local/bin/目录下:

shell cp chromedriver /usr/local/bin/

检测是否安装成功

shell chromedriver --version

如果不配置,只需要记得修改ChromeDriver在代码中配置的路径,你只需要将路径改为你自己的ChromeDriver路径即可,比如我的是:

System.setProperty(

"webdriver.chrome.driver",

"/Users/admin/Documents/selenium/chrome/79.0.3945.36/chromedriver"

);

记得修改代码里ChromeDriver的路径。 记得修改代码里ChromeDriver的路径。 记得修改代码里ChromeDriver的路径。

验证方案

首先完成设计方案中的三步

package com.ths.controller;

import com.ths.service.ThsGnCrawlService;

import com.ths.service.ThsGnDetailCrawlService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;

import java.util.List;

@Controller

public class CrawlController {

@Autowired

private ThsGnCrawlService thsGnCrawlService;

@Autowired

private ThsGnDetailCrawlService thsGnDetailCrawlService;

@RequestMapping("/test")

@ResponseBody

public void test() {

// 抓取所有概念板块的url List> list = thsGnCrawlService.ThsGnCrawlListUrl();

// 放入阻塞队列 thsGnDetailCrawlService.putAllArrayBlockingQueue(list);

// 根据url多线程抓取 thsGnDetailCrawlService.ConsumeCrawlerGnDetailData(1);

}

}

先看看thsGnCrawlService.ThsGnCrawlListUrl();方法,如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值