python3爬取上市公司基本数据

目前,我国沪深A股上市公司的数量为3524家[2018/05/31],如果能够从某个财经网站上批量获取这些公司的基本信息,将对研究工作起到一定帮助。进行这项工作之前,先让我们梳理一下我们的数据及其来源。

第一,我们需要哪些公司基本信息?

根据巨潮资讯网提供的数据,公司基本信息包含公司全称、英文名称、注册地址、公司简称、法定代表人、公司董秘、注册资本(万元)、行业种类、邮政编码、公司电话、公司传真、公司网址、上市时间、招股时间、发行数量(万股)、发行价格(元)、发行市盈率(倍)、发行方式、主承销商、上市推荐人和保荐机构,共21条信息。

我们的目标就是批量获取这21条或者其中我们需要的那些数据。

第二,数据来源是什么?

之前,试过从天眼查爬取数据,但是天眼查的反爬机制确实让人头疼。个人感觉巨潮资讯网的网站结构还是比较规范的,并且这个网站没有tyc-num之类的反爬,这样就给工作节省了一大笔时间。

数据来源就是巨潮资讯网。

第三,怎么实现获取?

我们的目标和来源都已经明确,接下来就是获取问题了。这也是功能的关键部分。首先,明确程序的功能特点,即输入股票代码(1个或者多个),批量获取这些公司基本信息。其次,输入的股票代码,可以是自己的目标公司,也可以是分行业、分概念、分地域等(演示代码中使用tushare调取了沪深全部A股上市公司)。再次,批量抓取公司基本信息,这里就涉及到python爬虫的部分。爬虫的部分,基本思路是用tushare获取股票代码,依次获取包含公司信息的网页链接,用requests获取网页源码,用bs4解析网页结构,从中找到所需信息,然后打印或者保存。

总结起来,这里用的了tushare,requests,bs4,等基本内容。演示代码中直接在窗口中打印信息,也可以尝试将信息保存在excel,csv等文件中。

接下来就是代码部分。代码中有不完善之处,感谢批评指正。

#-*-coding:gb2312-*-

from bs4 import BeautifulSoup
import requests
import bs4
import tushare as ts

#获取源码
def check_link(url):
    try:

        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print(‘无法链接服务器!‘)

#解析并抓取
‘‘‘print 部分,获取了9条信息,改变这部分参数,可以获取一共21条信息。‘‘‘
def get_contents(ulist,rurl):
    soup = BeautifulSoup(rurl,‘lxml‘)
    trs = soup.find_all(‘tr‘)
    for tr in trs:
        ui = []
        for td in tr:
            ui.append(td.string)
        ulist.append(ui)
    print(ulist[1][3],ulist[3][3],ulist[5][3],ulist[7][3],ulist[8][3],ulist[13][3],ulist[15][3],ulist[16][3],ulist[17][3])

#定义主函数
def main():
    df = ts.get_stock_basics()

    for i in df.index:
        index_int = int(i)
        urli = []
        url = "http://www.cninfo.com.cn/information/brief/shmb%d.html"%index_int
        try:
            rs = check_link(url)
            get_contents(urli,rs)
            continue
        except:
            pass

main()

  

原文地址:https://www.cnblogs.com/wongjoe/p/9116221.html

时间: 2024-10-02 13:44:37

python3爬取上市公司基本数据的相关文章

Python3爬取今日头条有关《人民的名义》文章

Python3爬取今日头条有关<人民的名义>文章 最近一直在看Python的基础语法知识,五一假期手痒痒想练练,正好<人民的名义>刚结束,于是决定扒一下头条上面的人名的名义文章,试试技术同时可以集中看一下大家的脑洞也是极好的. 首先,我们先打开头条的网页版,在右上角搜索框输入关键词,通过chrome调试工具,我们定位到头条的search栏调用的的API为: http://www.toutiao.com/search_content/?offset=0&format=json

python3爬取网页

爬虫 python3爬取网页资源方式(1.最简单: import'http://www.baidu.com/'print2.通过request import'http://www.baidu.com'print1.import urllib.request 'wd''python''opt-webpage''on''ie''gbk'GET和POST请求的不同之处是POST请求通常有"副作用" 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)

python3爬取女神图片,破解盗链问题

title: python3爬取女神图片,破解盗链问题 date: 2018-04-22 08:26:00 tags: [python3,美女,图片抓取,爬虫, 盗链] comments: true 前言 其实,抓取图片和抓取小说内容没有任何本质的区别,步骤都是一样的. 但是图片读取的时候,会遇到一个盗链问题.这个问题是花的解决时间最长的. 环境 语言: python3 操作系统: mac 10.12.16 自定义工具包:soup_tool 其依赖工具如下: from urllib import

Python3爬取电影信息:调用API

实验室这段时间要采集电影的信息,给出了一个很大的数据集,数据集包含了4000多个电影名,需要我写一个爬虫来爬取电影名对应的电影信息. 其实在实际运作中,根本就不需要爬虫,只需要一点简单的Python基础就可以了. 前置需求: Python3语法基础 HTTP网络基础 =================================== 第一步,确定API的提供方.IMDb是最大的电影数据库,与其相对的,有一个OMDb的网站提供了API供使用.这家网站的API非常友好,易于使用. http://

Python3爬取中文网址

本以为Python3的中文兼容性无比友好,结果还是会有一点问题的. 解决方案如下,就以爬取我自己的一个网页极简翻译为例 #coding:utf8 import urllib.request import urllib s='你好' s=urllib.parse.quote(s) url = "http://www.selflink.cn/iciba0/?name=%s"%(s) webPage=urllib.request.urlopen(url) data = webPage.rea

python3 爬取qq音乐作者所有单曲 并且下载歌曲

1 import requests 2 import re 3 import json 4 import os 5 6 7 8 # 便于存放作者的姓名 9 zuozhe = [] 10 11 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'} 12 13 14 def ge

python3爬取淘宝美食

环境:ubuntu16.04python3.5python库: selenium, pyquery,pymongo, re 要求:设置×××面浏览器访问,并将商品列表存入mongoDB数据库. 分析流程: #!/usr/bin/env python # -*- coding:utf-8 -*- """ 1.爬取淘宝美食的流程 - 搜索关键字: 用selenium打开浏览器,模拟输入关键字,并搜索对应的商品列表. - 分析页码并翻页,模拟翻页,查看到所有页面的商品列表. - 分

python3 爬取汽车之家所有车型操作步骤

题记: 互联网上关于使用python3去爬取汽车之家的汽车数据(主要是汽车基本参数,配置参数,颜色参数,内饰参数)的教程已经非常多了,但大体的方案分两种: 1.解析出汽车之家某个车型的网页,然后正则表达式匹配出混淆后的数据对象与混淆后的js,并对混淆后的js使用pyv8进行解析返回正常字符,然后通过字符与数据对象进行匹配,具体方法见这位园友,传送门:https://www.cnblogs.com/my8100/p/js_qichezhijia.html (感谢这位大神前半部分的思路) 2.解析出

Python3爬取百度百科(配合PHP)

用PHP写了一个网页,可以获取百度百科词条:http://www.selflink.cn/xiaobaike(只爬取摘要部分) 那么通过Python来爬取,只需要不断向这个网页POST数据,获取返回值就可以了.由于是我自己的网页,保存返回值我也让PHP在服务器端来完成了,所以Python的任务只需要不断向服务器POST数据. 那么POST什么数据呢?暂时找到了一个名词大全的网页.http://cidian.911cha.com/cixing_mingci.html 足足20页的名词,足够作为名词