python爬虫--从企查查获取所有上市公司列表保存至json
2021/9/14 17:07:43
本文主要是介绍python爬虫--从企查查获取所有上市公司列表保存至json,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、观察网页规律
url:https://www.qcc.com/elib_ipo_p_1.html
数字1对应相应的页面
获取页面信息
上代码:
# -*- codeing=utf-8 -*- from bs4 import BeautifulSoup import urllib.request, urllib.error import json import os
主方法:
def main(): # 从企查查获得所有企业列表 datalist = getCompanies() # 保存到json文件 如果文件存在,先删除 if os.path.exists('./company.json'): os.remove('./company.json') with open('./company.json', 'w', encoding='utf-8') as file: file.write(json.dumps(datalist, ensure_ascii=False, indent=1)) # 按照json格式换行
页面内容爬取
def getCompanies(): baseurl = "https://www.qcc.com/elib_ipo_p_" companies = [] for i in range(1, 451): url = baseurl + str(i) + ".html" html = askURL(url) soup = BeautifulSoup(html, "html.parser") table = soup.find('table', attrs={'class': 'ntable'}) results = table.find_all('tr') for result in results: company = {} data = result.find_all('td') if len(data) == 0: continue # 公司名称 company["公司名称:"] = str(data[1].getText()).replace('\n', '').replace('\t', '').strip() # 代码 company["代码:"] = data[2].getText() # 企业名称 company["企业名称:"] = str(data[3].getText().replace('\n', '')).replace('\t', '').strip() # 交易所名称 company["交易所名称:"] = str(data[4].getText().replace('\n', '')).replace('\t', '').strip() # 上市日期 company["上市日期:"] = data[5].getText() companies.append(company) return companies def askURL(url): # 模拟浏览器头部信息 head = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36" } request = urllib.request.Request(url, headers=head) html = "" try: response = urllib.request.urlopen(request) html = response.read().decode("utf-8") except urllib.error.URLError as e: if hasattr(e, "code"): print(e.code) if hasattr(e, "reason"): print(e.reason) return html
结束:
if __name__ == '__main__': main()
生成的文件
这篇关于python爬虫--从企查查获取所有上市公司列表保存至json的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程
- 2024-12-20Vue3入门教程:从零开始搭建你的第一个Vue3项目
- 2024-12-20从零开始学习vueRouter4:基础教程
- 2024-12-20Vuex4课程:新手入门到上手实战全攻略