目的:爬取股票数据,本文爬取的是网站:https://wallstreetcn.com/markets/ ,爬取信息包括:[item_cname, item_ename, last_p, update_t, zde, rate, day_interval1,day_interval2,all_interval1,all_interval2] 即为['资产名(中)','资产名(英)','最新价格','更新时间','涨跌额','涨跌幅','日区间1','日区间2','总区间1','总区间2']

结果呈现:(1)数据保存到wallstreet.csv 【简单对它进行数据分析,可视化绘图,见博客https://my.oschina.net/pansy0425/blog/3032670

(2)数据存放到数据库中【不难,只是平常多使用下数据库,可以增加记忆】

注意点:在获取分类时:只能获取 外汇;商品;股指;债券;数字货币,但是:沪深;港股;美股  【需要登录才可以看,我就不登录,还得注册账号,我又不用这块,就不注册了】

注:这个爬取比较简单,没有遇到反爬,而且网页信息都可以在相应的html文件中找到,所以就直接放代码啦~~~

#下面为本实例的爬虫代码,若有问题可以给我留言,或者有更好的解决方法也可以私信我~

前期mysql中的操作:【都是这个套路,是最基本的】

"""
数据库中的操作
首先打开数据管理权限:net start mysql56C:\WINDOWS\system32>mysql -u root -pEnter password: ********进入MySQL
新建数据库:Socket
新建表:WallStreet 字段:item_cname VARCHAR(225),item_ename VARCHAR(225),last_p FLOAT,update_t VARCHAR(255),zde FLOAT,rate VARCHAR(255),day_interval1 FLOAT,day_interval2 FLOAT,all_interval1 FLOAT,all_interval2 FLOAT.
mysql> CREATE DATABASE IF NOT EXISTS Socket DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> USE Socket;
mysql> CREATE TABLE WallStreet(-> id INT PRIMARY KEY AUTO_INCREMENT,-> item_cname VARCHAR(225),-> item_ename VARCHAR(225),-> last_p FLOAT,-> update_t VARCHAR(225),-> zde FLOAT,-> rate VARCHAR(225),-> day_interval1 FLOAT,-> day_interval2 FLOAT,-> all_interval1 FLOAT,-> all_interval2 FLOAT);
mysql> DESCRIBE WallStreet;
+---------------+--------------+------+-----+---------+----------------+
| Field         | Type         | Null | Key | Default | Extra          |
+---------------+--------------+------+-----+---------+----------------+
| id            | int(11)      | NO   | PRI | NULL    | auto_increment |
| item_cname    | varchar(225) | YES  |     | NULL    |                |
| item_ename    | varchar(225) | YES  |     | NULL    |                |
| last_p        | float        | YES  |     | NULL    |                |
| update_t      | varchar(225) | YES  |     | NULL    |                |
| zde           | float        | YES  |     | NULL    |                |
| rate          | varchar(225) | YES  |     | NULL    |                |
| day_interval1 | float        | YES  |     | NULL    |                |
| day_interval2 | float        | YES  |     | NULL    |                |
| all_interval1 | float        | YES  |     | NULL    |                |
| all_interval2 | float        | YES  |     | NULL    |                |
+---------------+--------------+------+-----+---------+----------------+
"""

爬虫代码:【简单】

import requests
from bs4 import BeautifulSoup
import csv
import os
import pymysqlclass CSV():def __init__(self):self.path_name='wallstreet.csv'def save_to_csv(self,info_title,info):with open(self.path_name,'a',encoding='utf-8',newline="")as csv_f:csv_write=csv.writer(csv_f)if os.path.getsize(self.path_name)==0:csv_write.writerow(info_title)else:csv_write.writerow(info)print('{}-存入-{}-成功'.format(info[0],'csv'))class SJK():def __init__(self,db_name,table_name):self.db_name=db_name  #数据库的名称self.table_name=table_name  #表名def save_to_sjk(self,info):db=pymysql.connect(host='localhost',port=3306,user='root',passwd='12345678',db=self.db_name,charset='utf8')cursor=db.cursor()  #使用cursor创建一个游标对象sql="""INSERT INTO {} (item_cname,item_ename,last_p,update_t,zde,rate,day_interval1,day_interval2,all_interval1,all_interval2) VALUES ('{}','{}','{}','{}','{}','{}','{}','{}','{}','{}')""".format(self.table_name,info[0],info[1],info[2],info[3],info[4],info[5],info[6],info[7],info[8],info[9])try:cursor.execute(sql)db.commit()print('{}-存入-{}-成功'.format(info[0],'sjk'))except Exception as e:db.rollback()print(e)print('{}-存入-{}-失败'.format(info[0],'sjk'))class WallStreet():def __init__(self):self.headers={'user-agent':'Mozilla/5.0'}self.start_url='https://wallstreetcn.com/markets/'self.csv=CSV()self.sjk=SJK('Socket','WallStreet')def get_page(self,url,params=None):  #得到网页htmltry:r=requests.get(url,headers=self.headers,params=params)r.raise_for_status()r.encoding=r.apparent_encodingreturn r.textexcept Exception as e:print(e)def get_cate(self,url):  #得到分类cate_urls=[]html=self.get_page(url)soup=BeautifulSoup(html,'html.parser')block=soup.find_all('div',{'class':{'header'}})for item in block[1:6]:info=item('a')[0]['href'].split('/')[-1]cate_url=url+infocate_urls.append(cate_url)return cate_urlsdef get_num(self,url):  #得到每个类别一共一共多少页html=self.get_page(url)soup=BeautifulSoup(html,'html.parser')page=soup.find('div',{'class':{'wscn__pagination-left'}})page_num=int(page('a')[-1].text.strip())return page_numdef get_info(self,url):num=self.get_num(url)for i in range(num):params={'page':i+1,'sort_type':'none'}html=self.get_page(url,params=params)soup=BeautifulSoup(html,'html.parser')divs=soup.find_all('div',{'class':{'symbol-list-item'}})for div in divs:item_cname=div.find('div',{'class':{'item-prodname'}}).text.strip()  #资产中文名  stritem_ename=div.find('div',{'class':{'en'}}).text.strip()  #资产英文名  strlast_p=float(div.find('span',{'class':{'last-px'}}).text.strip())  #最新价格  floatupdate_t=div.find('span',{'class':{'update-time'}}).text.strip()   #更新时间  strzde=float(div.find('span',{'class':{'precision'}}).text.strip())  #涨跌额  floatrate=div.find('span',{'class':{'rate'}}).text.strip()  #涨跌幅  strday_interval1=float(div.find('div',{'class':{'symbol-list-item-dayInterval'}})('span')[0].text.strip())  #日区间1  floatday_interval2=float(div.find('div',{'class':{'symbol-list-item-dayInterval'}})('span')[-1].text.strip())  #日区间2  floatall_interval1=float(div.find('div',{'class':{'symbol-list-item-allInterval'}})('span')[0].text.strip())  #总区间1  floatall_interval2 = float(div.find('div', {'class': {'symbol-list-item-allInterval'}})('span')[-1].text.strip())  #总区间2 floatinfo=[item_cname,item_ename,last_p,update_t,zde,rate,day_interval1,day_interval2,all_interval1,all_interval2]info_title=['资产名(中)','资产名(英)','最新价格','更新时间','涨跌额','涨跌幅','日区间1','日区间2','总区间1','总区间2']self.csv.save_to_csv(info_title,info)self.sjk.save_to_sjk(info)def main(self):cate_urls=self.get_cate(self.start_url)for item in cate_urls:self.get_info(item)wallstreet=WallStreet()
wallstreet.main()

屏幕显示:【部分显示】

wallstreet.csv 文件中显示:【部分显示】

数据库中显示:【部分显示】

---------(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)(。・ω・。)----------

今日爬虫完成!

今日鸡汤:再好的想法,没有行动的支撑,也只是空想而已。大部分的人,开始时拥有很远大的理想,但因为缺乏行动而使得梦想萎缩,过着随遇而安的生活。

加油ヾ(◍°∇°◍)ノ゙

转载于:https://my.oschina.net/pansy0425/blog/3032634

27-爬取华尔街见闻网中行情的数据【股票数据的一种】相关推荐

  1. python爬取中国天气网中城市及其对应编号

    文章目录 一.前言 二.思路 三.程序 四.注意事项 一.前言 为了实现爬取各地城市天气预报及其可视化的需要,爬取中国天气网中城市及其对应编号 . 天气预报可视化文章如下: <python爬虫, ...

  2. Python爬取了《雪中悍刀行》数据,数据可视化分析

    Python爬取了<雪中悍刀行>数据,数据可视化分析 如何查找视频id 项目结构 制作词云图 制作最近评论数条形图与折线图 制作每小时评论条形图与折线图 制作最近评论数饼图 制作每小时评论 ...

  3. 爬取煎蛋网中的妹子图

    看了小甲鱼爬取煎蛋网的视频,但是当时无论怎么写都写不出来,后来又看了一点其他视频,心血来潮把那段代码重写了一次,总算成功了,也算是解决一个心病吧,唯一美中不住的是还是不太会使用find函数,慢慢来吧, ...

  4. 用 Python 爬取了《雪中悍刀行》数据,终于知道它为什么这么火了

    转载来源/志斌的python笔记 绪论 大家好,我是J哥. 本期是对腾讯热播剧--雪中悍刀行的一次爬虫与数据分析,耗时一个小时,总爬取条数1W条评论,很适合新人练手. 爬虫方面:由于腾讯的评论数据是封 ...

  5. 爬取大众点评网的某城市美食店铺数据

    文章目录 前言 一.确定爬取的url 二.开始抓取 1.直接抓取 2.构造请求头 3.抓取信息 4.信息解密 三.将数据保存到数据库 四.总结 前言 某旅游城市在今年的十一期间再次火爆了一把,城市的各 ...

  6. 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化

    大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...

  7. 10分钟爬取A股所有上市公司超千万条股票数据

    最近,在tushare官方文档中,看到这个一个方法pro.stock_basic(),作用是可以爬取A股所有上市股票基本信息.然后我就试了一下,默认条件下可以爬取到A股上市的的所有股票基本数据,共41 ...

  8. 使用selenium抓取华尔街见闻和新浪财经数据

    # 新浪财经数据采集import requests import pymongo import timefrom selenium import webdriver from bs4 import B ...

  9. 【爬虫】Scrapy爬取古风漫画网

    目录 须知 分析 A.\mathcal{A}.A.目标 B.\mathcal{B}.B.子目标 C.\mathcal{C}.C.子目标分析 manhua.py items.py pipelines.p ...

最新文章

  1. MAC和XCODE常用快捷键
  2. Django Rest Framework(一)
  3. 【JS 逆向百例】PEDATA 加密资讯以及 zlib.gunzipSync() 的应用
  4. IE6 某些bug修复
  5. windows驱动开发技术详解 VC6与DDK搭配使用的设置
  6. Mac快捷键大全-网络整理
  7. winrar捆绑软件
  8. 第一章 古代东方文明
  9. 计算机蓝屏用故障卡,电脑蓝屏后一直卡在正在启动界面怎么处理
  10. 特种浓缩分离:无机陶瓷膜设备性能描述
  11. 高品质的3D建模和渲染软件——3Dmax!小白须知!
  12. Java——匿名内部类
  13. MBR膜是什么?起到哪些用途?-世来福
  14. linux中文麻酱字_芝麻酱的瓶子上有这些文字,就直接扔吧,玉磨坊告诉你
  15. Streams AQ: qmn coordinator waiting for slave to start
  16. 独家专访比尔·盖茨实录:这些钱对我都是多余的(中英文)
  17. react视频播放组件Griffith的基本使用
  18. 谈谈网银和USB Key
  19. 何小鹏:跟李斌赌输了 将付一辆ES8顶配的购车款给对方
  20. 《大秦赋》最近有点火!于是我用Python抓取了“相关数据”,发现了这些秘密.........

热门文章

  1. 【无标题】62晚上matlab
  2. 【LOJ #3084】【GXOI / GZOI2019】—宝牌一大堆(DP)
  3. 工具集电子书等4G资料免费分享(IT 信安菜鸟入门必备)
  4. 对英特尔在嵌入式市场的几个猜想
  5. java 立刻回收_如何实现Java程序自动回收垃圾
  6. 电信机顶盒ty1208-z刷linux(armbian)
  7. 网站排名SEO优化方案(2022最新)
  8. SEO做反链不能太刻意,自然合理规律的发布自己的网站
  9. 全国首张数字人民币保单成功出单
  10. 迷你世界显示服务器错误,迷你世界无法登陆及闪退怎么办 解决方法详解