10行代码爬取全国所有A股港股新三板上市公司信息

股票吧 时间:2019-11-17 01:18:32

  纲要: 咱们通常在浏览网页中会遇到极少表格型的数据信休,除了外格本身表现的内容之表,也许还想透过表格背面再暴露些蓄谋想大概有价值的信息。这时,可用python爬虫来告竣。本文抉择pandas库中的read_html要领来速速无误地抓取网页中的外格数据。

  因为本文中含有极少超链接,微信中无法直接洞开,因此倡导点击最左下角阅读原文阅读,融会更好,也能够复制链接到赏玩器洞开:

  它们除了都是表格之表,还一个合伙点即是当点击右键-定位时,不妨看到它们都是table楷模的表格。

  如此的表格数据,就无妨垄断pandas模块里的read_html函数轻易急速地抓取下来。下面全部人们就来掌管一下。

  下面以中原上市公司讯歇这个网页中的表格为例,感觉一下read_html函数的发达之处。

  只需不到十行代码,1分钟职掌就没合系将一齐178页共3535家A股上市公司的音信皎洁井然地抓取下来。比选择正则剖明式、xpath这类常规方式要省心省力地众。倘使采取人为一页页地复制粘贴到excel中,就得职掌到猴年马月去了。

  上述代码除了能爬上市公司表格之外,其全班人几个网页的表格都可能爬,只需做轻易的点窜即可。以是,可行动一个利便通用的代码模板。可是,为了让代码更强健更通用少少,接下来,以爬取177页的A股上市公司信休为目的,谈明一下归纳的代码完工办法。

  可能暴露,惟有pageNum的值随着翻页而改观,是以底子可能断定pageNum=1代表第1页,pageNum=10代外第10页,以此类推。如此对照敷衍用for轮回构造爬取的网址。

  试着把#QueryCondition裁减,看网页是否同样没关系开放,经检验发现网页依然能正常开放,于是正在构造url时,没关系支配云云的花腔:

  a:显示A股,把a更换为h,显露港股;把a更换为xsb,则呈现新三板。那么,正在网址分页for轮回外部再加一个for循环,就无妨爬取这三个股市的股票了。

  上面两个函数比拟于速快抓取的格式代码要多少少,假若需求抓的外格很少或只需要抓一次,那么推选快快抓取法。如果页数比拟多,这种举措就更保险少少。理会函数用了BeautifulSoup和css挑选器,这种步骤定位提取外格所正在的id为#myTable04的table代码段,更为准确。

  接下来,咱们能够将收场活命到本地csv文献,也可能生活到MySQL数据库中。这里为了演习一下MySQL,以是拣选糊口到MySQL中。

  起首,须要先正在数据库提拔寄存数据的外格,这里命名为listed_company。代码如下:

  以上就落成了单个页面的表格爬取和生存做事,接下来只要在main()函数进行for轮回,就不妨告竣完全统统178页表格的爬取和保全,完美代码如下:

  除了A股,还没关系趁便再把港股和新三板总共的上市公司也爬了。后期,将会对爬取的数据做一下便当的数据解说。

  结尾,需注释不是统统表格都能够用这种手腕爬取,例如这个网站中的表格,概况是看起来是外格,但正在html中不是前面的table花样,而是list列表花招。这种外格则不适用read_html爬取。得用其所有人的要领,譬喻selenium,从此再进行介绍。

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系,我们立即下架或删除。

热门文章