python3 爬取深圳主板公司名称,公司网址
2024-08-23 14:17:54
- 需要阅读的文档:
Requests:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html
BeautifulSoup:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ - 说明:
爬虫入口网址:http://www.cninfo.com.cn/cninfo-new/information/companylist
抓取目标:公司代码公司名称、公司公告地址 - python3.5完整代码如下:
import codecs #内置自然语言编码转换库
import csv #内置csv模块
import requests #网页下载器模块
from bs4 import BeautifulSoup #网页解析器模块
def getHTML(url): #定义下载网页内容的函数
r = requests.get(url) #返回一个响应
return r.text #响应的内容
def parseHTML(html): #定义解析网页内容(抓取目标)的函数
soup = BeautifulSoup(html, 'html.parser') #使用html.parser这个python内置解析器解析html这个页面的源代码
body = soup.body #返回页面body信息
company_middle = body.find('div', attrs={'class': 'middle'}) #返回body里面class为middle的div标签
company_list_ct = company_middle.find('div', attrs={'class': 'list-ct'}) #返回middle里面class为list-ct的div标签
company_list = [] #将公司数据先设为空列表
for company_ul in company_list_ct.find_all('ul', attrs={'class': 'company-list'}): # 在list-ct里面搜索class为company-list的ul标签
for company_li in company_ul.find_all('li'): #在ul里面搜索li标签
company_url = company_li.a['href'] #公司url就是li里面标签为a,属性为href的值
company_info = company_li.get_text()#公司名字用这个方法来获取
company_list.append([company_info, company_url]) #把公司名称和网址添加到那个空列表里面
return company_list #然后返回出来
def writeCSV(file_name,data_list): #定义一个scv文件的函数,两个参数,一个是文件名字,一个文件内容
with codecs.open(file_name, 'w') as f: #打开一个文件
writer = csv.writer(f) #把空文件转为csv文件?
for data in data_list: #循环data_list里面的每一条数据
writer.writerow(data) #把data_list里面的数据写进csv文件
URL = 'http://www.cninfo.com.cn/cninfo- new/information/companylist' #设变量
html = getHTML(URL) #调取函数
data_list = parseHTML(html) #调取函数
writeCSV('test.csv', data_list) #调取函数
运行结果为在当前代码文件所在的文件夹生成一个test.csv文件,内容不完整截图如下:
最新文章
- IOS系统基础知识
- Michael Schatz - 序列比对课程
- yii2权限控制rbac之rule详细讲解(转)
- yum服务器设置
- uva - 133 The Dole Queue(成环状态下的循环走步方法)
- JavaScript基础学习
- VS 使用技巧
- XCode中设置字体大小
- 关于UIButton嵌入到UIView点击无反应问题的解决方法和delegate的简单用法示例(转载)
- ORACLE数据库学习之备份与恢复
- HBase篇--HBase操作Api和Java操作Hbase相关Api
- Git 撤销到某个版本的代码
- nowcoder提高集训营第5场
- 性能测试四十二:sql案例之联合索引最左前缀
- java Illegal unquoted character ((CTRL-CHAR, code X)): has to be escaped using backslash to be included in string value
- A1051. Pop Sequence
- FakeImageExploiter v1.3
- ie浏览器get url返回404问题
- Texas Instruments matrix-gui-2.0 hacking -- app_description.php
- 【Java并发编程】:生产者—消费者模型
热门文章
- cmake之譬判断cmake的版本
- 【LeetCode】990. Satisfiability of Equality Equations 解题报告(C++ & python)
- 【LeetCode】658. Find K Closest Elements 解题报告(Python)
- 【LeetCode】384. Shuffle an Array 解题报告(Python & C++)
- 1340 - Story of Tomisu Ghost
- idea使用教程-idea简介
- .Net下你不得不看的分表分库解决方案-多字段分片
- JVM调参
- 解决vue生产环境app.js或vendor文件过大问题
- spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象