系统环境:

操作系统:Windows8.1专业版 64bit
Python:anaconda、Python2.7
Python modules:requests、random、BeautifulSoup、pandas

Background:

合规门户中有很多地方需要用户填写股票名称或股票代码,因此需要各个股票市场的证券名称和证券代码,包括 A/B/H股/港股。在此以A股为例,使用Python爬虫来爬取A股的股票名称和代码。

解决方法:

在编程实现之前,需要按照以上的系统环境,配置好自己的Python环境。

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 27 19:58:48 2018@author: gmn
"""#导入requests module
import requests
#导入random module
import random
#导入BeautifulSoup module
from bs4 import BeautifulSoup
#导入pandas module
import pandas as pd#User-Agent列表,这个可以自己在网上搜到
USER_AGENTS = [  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",  "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",  "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",  "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",  "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",  "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",  "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",  "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",  "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",  "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",  "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",  "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",  "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",  "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52",
]  #设置IP代理
proxies={"https":"http://219.135.99.185:8088"}  #设置要爬取的url
url='http://quote.eastmoney.com/stocklist.html'
#设置get请求的User-Agent,用于伪装浏览器UA
headers={'User-Agent':random.choice(USER_AGENTS)}
#requests get请求
req=requests.get(url,headers=headers,proxies=proxies)
#页面结构化
#bs=BeautifulSoup(req.content,'html.parser')
bs=BeautifulSoup(req.text,'lxml')quotesearch=bs.find('div',attrs={'id':'quotesearch'})
stock_list=quotesearch.find_all('ul')
market_List=quotesearch.find_all('div',attrs={'class':'sltit'})
#设置各个字段的名称
col_name=['MARKET_ID','STOCK_NAME','STOCK_CODE']
#变量初始化
list_row=[]
df_all=pd.DataFrame()#设置保存的路径
dirPath='E:\IoT\MaoningGuan\Studying\AIandBigData\PythonProject\py27\homeWork02'
dirPath=dirPath+'\\'
#设置文件保存的文件名
fileName='assignment01.csv'for stock, market in zip(stock_list,market_List):#获取A股类型:上股或者深股market_id=market.get_text().encode('latin').decode('gb18030')  #编码转换#print(market_id)#获取所有的证券信息stock_info=stock.find_all('li')for jj in range(len(stock_info)):#获取其中一条证券信息detail=stock_info[jj].get_text().encode('latin').decode('gb18030') #编码转换#提取证券名称和代码arr=detail.split('(')stock_name=arr[0] #获取证券名称stock_code=arr[1].replace(')','') #获取证券代码list_row=[]  #在此一定要重新把list_row列表清空,不然list_row在后面就会超过3列了#组合一条字段信息list_row.append(market_id)list_row.append(stock_name)list_row.append(stock_code)df_row=pd.DataFrame([list_row],columns=col_name) #字段名称和字段信息的组合df_all=df_all.append(df_row) #把该条证券信息到df_all变量中
df_all.to_csv(dirPath+fileName,encoding='gb18030',index=False) #把内容写进csv文件中

AIBigData训练营笔记四:Python爬取A股股票名称和代码相关推荐

  1. python代码示例下载-python爬取音频下载的示例代码

    抓取"xmly"鬼故事音频 import json # 在这个url,音频链接为JSON动态生成,所以用到了json模块 import requests headers = { & ...

  2. Python爬取De下载站相关代码

    Python爬取De下载站相关代码,因为没有设置代理,所以爬到800页左右就被干掉了,后续要加上 import urllib.request import bs4 import re import t ...

  3. python关于二手房的课程论文_基于python爬取链家二手房信息代码示例

    基本环境配置 python 3.6 pycharm requests parsel time 相关模块pip安装即可 确定目标网页数据 哦豁,这个价格..................看到都觉得脑阔 ...

  4. python爬取b站直播弹幕代码

    以下是使用Python爬取B站直播弹幕的代码示例: import requests import json import timedef get_real_url(room_id):# 获取直播间的真 ...

  5. python爬取豆瓣电影top250的代码_Python爬虫——爬取豆瓣电影Top250代码实例

    利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Excel表中 ...

  6. python爬小说一本一本爬_【学习笔记】Python爬取某一本小说

    本帖最后由 流浪的二胡 于 2018-10-23 20:19 编辑 最近刀剑神域第三季真的不错,无奈动画一周才更新一次,索性就想先把原著小说看了解解馋. 于是就找到了这个小说网站:http://www ...

  7. #python学习笔记#使用python爬取网站数据并保存到数据库

    上篇说到如何使用python通过提取网页元素抓取网站数据并导出到excel中,今天就来说说如何通过获取json爬取数据并且保存到mysql数据库中. 本文主要涉及到三个知识点: 1.通过抓包工具获取网 ...

  8. 爬虫笔记-使用python爬取豆瓣短评

    遇到的问题:如果不模拟登陆的话只能爬取200条评论,但是实现模拟登陆之后也只能爬取500条数据 # -*- encoding:utf-8 -*-import requests from bs4 imp ...

  9. python 爬取网页照片!全代码!指定数量,指定目录,爬取过程详细!关于有下载照片过程但是不显示照片的问题的解释

    作者:untilyouydc 原文:https://blog.csdn.net/qq_40774175/article/details/81273198 原博主解释比较详细,有些知识还附带上了链接解释 ...

最新文章

  1. 整型数组负数放左面,其他放右面,要求时空复杂度:O(n), O(1)。
  2. 年末裁员事件背后的启示录(1)
  3. Markdown的一些常用的语法
  4. linux usb xhci ehci,ehci和xhci有什么区别
  5. 全国计算机等级考试题库二级C操作题100套(第06套)
  6. 预警展示样式html,纯css3 Tooltip工具提示样式
  7. 智慧交通day02-车流量检测实现14:代码汇总+问题修正
  8. python multiprocessing 保存与打印返回值
  9. 构建最基础的Spring项目及所需要的jar包
  10. matlab人工神经网络教程,人工神经网络作业MATLAB仿真(共3篇)
  11. 2021-03-12 16个车辆信息检测数据集收集汇总
  12. excel如何设置单元格的下拉选项框并着色
  13. matlab 温度计,Matlab与Excel相结合实现标准铂电阻温度计检定数据处理
  14. pythonmathcot函数_sin cos tan cot公式
  15. 树梅派应用27:通过USB蓝牙适配器连接BLE设备
  16. 关于印发《深圳市福田区支持战略性新兴产业和未来产业集群发展若干措施》的通知
  17. 撸猫游戏千千万,他们凭什么被推荐?
  18. 中测康苑——企业文化
  19. xmind可以画流程图吗_xmind8可以画流程图吗
  20. Android加密算法

热门文章

  1. 一文让你彻底搞懂浏览器的渲染流程
  2. 为了解决计算机主机,一种计算机主机的制作方法
  3. 量化投资学习必读书目(九)——《期货交易策略》
  4. 怎样把你的声音变得跟声波一样
  5. 数字信号处理基础----快速傅里叶变换
  6. pandas库时间差计算
  7. java @literal_Java中的Pattern LITERAL字段的示例
  8. PMI-ACP考试倒计时,请考生查阅考场注意事项
  9. 唯品会测试工程师实习生招聘2014春
  10. 【LeetCode】Basic Calculator II