大家好,我是带我去滑雪,每天分享一个小技巧!
当前,文本信息挖掘十分火热,文本信息挖掘作为一个新的数据挖掘领域,其目的在于把文本信息转化为人可利用的知识,而获取文本信息是文本信息挖掘工作中最重要、最首要的关键一环,那么如何快速、高效、批量地获取文本信息呢?那当然要提到今天的主角"爬虫"啦!下面介绍如何利用Python爬取每支股票对应的股吧评论、新闻公告,所爬取网站为某财富网站。部分爬取结果见表1、表2。
表1 爬取的部分股票股吧评论展示
行业 | 股票代码 | 股吧评论 |
医疗服务 | 603259 | CRO板块都没资金拉。药明今天没有量能了…… |
603259 | 没量今天就这样了 | |
603259 | 512010医药ETF重仓股603259:归母净利润同比增长154 | |
603259 | 成本100我就不信回不了本[叹气] | |
603259 | 今天涨俩点。下周站上一百[上涨][上涨][上涨] | |
603259 | CRO板块的企业整体业绩都不错,但是股价始终被按在地 | |
603259 | 我咋觉得它是在洗盘呢[滴汗][滴汗][滴汗] | |
603259 | 今天敌不动我不动[呲牙][呲牙][呲牙] | |
互联网服务 | 300059 | A股三十而立,风格脱胎换骨,这个板块胎动! |
300059 | 证券行业并购重组的窗口期已临近 | |
300059 | 8月11日 周 四 | |
300059 | 晚间(300059)的一则折价约20%的大宗交易公 | |
300059 | 指数回来了,你的钱呢?这两赛道别等靴子落地!(周策 | |
300059 | 8.12 | |
300059 | 今天卖出的哭吧,今晚中报绝对优秀的,小周追高吧 | |
300059 | 等待中报预告了[滴汗][微笑][兴奋][滴汗][哭] | |
食品饮料 | 600887 | 赛道熄火,风雨飘摇,真正的避风港却被忽视? |
600887 | 给出买入评级,可以加仓抄底 | |
600887 | 为啥中报会有雷?牛奶需求量一年中不是均匀的吗?疫情 | |
600887 | 本周个股研报精选 | |
600887 | 预计半年报 | |
600887 | 中报是天雷滚滚呀 | |
600887 | 下周继续砸盘,目标15 | |
600887 | 什么?你们还在坚守伊利 |
表2 爬取的部分股票新闻公告展示
行业 | 股票名称 | 新闻公告 |
医疗服务 | 603259 | 603259:关于召开2022年半年度业绩说明会的公告 |
603259 | 603259:H股公告(证券变动月报表) | |
603259 | 603259:第二届监事会第二十九次会议决议公告 | |
603259 | 603259:第二届董事会第三十一次会议决议公告 | |
603259 | 603259:2022年半年度报告摘要 | |
603259 | 603259:2022年半年度募集资金存放与实际使用情况报告 | |
603259 | 603259:2022年半年度报告 | |
603259 | 603259:2022年度全年业绩目标更新公告 | |
互联网服务 | 300059 | 2022年半年度报告 |
300059 | 信息股份有限公司章程(2022年3月) | |
300059 | 2022年半年度报告摘要 | |
300059 | 2022年一季度报告 | |
300059 | 2022年4月12日投资者关系活动记录表 | |
300059 | 2021年年度审计报告 | |
300059 | 关于不提前赎回的公告 | |
300059 | 2021年度财务决算报告 | |
食品饮料 | 600887 | 章程 |
600887 | 股份投资者问答汇总(2022年4月) | |
600887 | 600887:2021年年度报告 | |
600887 | 600887:审计报告 | |
600887 | 600887:2022年一季度报告 | |
600887 | 600887:关于股东股份质押 | |
600887 | 600887:开展衍生品业务公告 | |
600887 | 600887:进展公告 |
完整代码如下:
爬取股票股评python代码
import requests
from lxml import etree
import pandas as pd
max_page =16
all_title = []
all_time = []
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'}
for page in range(1,max_page+1):
print('crawling the page is {}'.format(page))
url= f'http://guba.财富网址.com/list,600073,f_{page}.html'
response = requests.get(url, headers=headers)
root = etree.HTML(response.text)
title = root.xpath("//div[contains(@class,'articleh normal_post')]//span[@class='l3 a3']//a//text()")
time = root.xpath("//div[contains(@class,'articleh normal_post')]//span[@class='l5 a5']//text()")
all_title += title
all_time += time
data_raw = pd.DataFrame()
data_raw['title'] = all_title
data_raw['time'] = all_time
data_raw.to_excel('.//data_raw.xlsx', index=False)
爬取股票新闻公告python代码
import time
import requests
from json import loads
import pandas as pd
url = '财富网址/api/security/ann?cb=jQuery112303892765899345705_1660361393434&sr
=-1&page_size=50&page_index={}&ann_type=A&client_source=web&stock_list=股票代码&f_node=0&s_node=0'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}
response = requests.get(url.format(1), headers=headers)
total = loads(response.text.lstrip('jQuery112303892765899345705_1660361393434(').rstrip(')'))['data']['total_hits']
names = []
for index in range(1, int(total/50)+2):
response = requests.get(url.format(index), headers=headers)
data_list = loads(response.text.lstrip('jQuery112303892765899345705_1660361393434(').rstrip(')'))['data']['list']
for notice in data_list:
names.append(notice['title'])
time.sleep(1)
df = pd.DataFrame({'title': names})
df.to_excel('data.xlsx', encoding='utf-8', index=False)
注意使用代码时,请将代码中标红的部分删除,根据自己需要,分别替换爬取网址和所爬取的股票代码。本文所爬取的数据集可去百度百度网盘自行获取,仅供学习参考使用!
链接:https://pan.baidu.com/s/16Pp57kAbC3xAqPylyfQziA?pwd=2138
提取码:2138
更多优质内容持续发布中,请移步主页查看。
若有问题可邮箱联系:1736732074@qq.com
博主的WeChat:TCB1736732074
点赞+关注,下次不迷路!