1. 需要阅读的文档:

    Requests:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html

    BeautifulSoup:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
  2. 说明:

    爬虫入口网址:http://www.cninfo.com.cn/cninfo-new/information/companylist

    抓取目标:公司代码公司名称、公司公告地址
  3. 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文件,内容不完整截图如下:

原文地址:https://zhuanlan.zhihu.com/p/21452812

python3 爬取深圳主板公司名称,公司网址的更多相关文章

  1. Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码

    题记: 11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国 ...

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

    title: python3爬取女神图片,破解盗链问题 date: 2018-04-22 08:26:00 tags: [python3,美女,图片抓取,爬虫, 盗链] comments: true ...

  3. python3爬取微博评论并存为xlsx

    python3爬取微博评论并存为xlsx**由于微博电脑端的网页版页面比较复杂,我们可以访问手机端的微博网站,网址为:https://m.weibo.cn/一.访问微博网站,找到热门推荐链接我们打开微 ...

  4. python3爬取网页

    爬虫 python3爬取网页资源方式(1.最简单: import'http://www.baidu.com/'print2.通过request import'http://www.baidu.com' ...

  5. Python3 爬取微信好友基本信息,并进行数据清洗

    Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...

  6. python3爬取全民K歌

    Python3爬取全民k歌 环境 python3.5 + requests 1.通过歌曲主页链接爬取 首先打开歌曲主页,打开开发者工具(F12). 选择Network,点击播放,会发现有一个请求返回的 ...

  7. Python3爬取猫眼电影信息

    Python3爬取猫眼电影信息 import json import requests from requests.exceptions import RequestException import ...

  8. python3 爬虫爬取深圳公租房轮候库(深圳房网)

    深圳公租房轮候库已经朝着几十万人的规模前进了,这是截至16年10月之前的数据了,贴上来大家体会下 所以17年已更新妥妥的10W+ 今天就拿这个作为爬虫的练手项目 1.环境准备: 操作系统:win10 ...

  9. Python3爬取中文网址

    本以为Python3的中文兼容性无比友好,结果还是会有一点问题的. 解决方案如下,就以爬取我自己的一个网页极简翻译为例 #coding:utf8 import urllib.request impor ...

随机推荐

  1. cmake配置MFC项目属性

    MFC的使用 使用下面的代码设置为: # 设置MFC的使用 SET(CMAKE_MFC_FLAG 2) 这里的 2 代表: 在共享 DLL 中使用 MFC, 1代表在静态库中使用 MFC 设置字符集 ...

  2. 【LeetCode】733. Flood Fill 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:DFS 方法二:BFS 日期 题目地址:ht ...

  3. 1289 - LCM from 1 to n

    http://blog.csdn.net/acdreamers/article/details/18507767 这个是位图的链接,这篇写的挺好. 模板: 1 #include<math.h&g ...

  4. Inverse/Implicit Function Theorem

    目录 4.1 The Inverse Function Theorem The Implicit Function Theorem 4.3 Curves and Surfaces 4.4 The Mo ...

  5. matplotlib 进阶之Customizing Figure Layouts Using GridSpec and Other Functions

    目录 对Gridspec的一些精细的调整 利用SubplotSpec fig.add_grdispec; gs.subgridspec 一个利用Subplotspec的复杂例子 函数链接 matplo ...

  6. 取代 Maven?这款项目构建工具性能提升 300%

    在 GitHub 上闲逛的时候,发现了一个新的项目:maven-mvnd,持续霸占 GitHub trending 榜单好几天了. maven-mvnd,可以读作 Maven Daemon,译作 Ma ...

  7. IM2603 Type-C扩展坞电源管理 IC

    IM2603 概述 用于带有集成降压转换器的 Type-C 外围应用的电源管理 IC IM2603 是一款主要用于 Type-C 外围应用的电源管理 IC. 它集成了一个带有内置高侧 MOSFET 的 ...

  8. MyBatis练习——使用MyBatis查询所有职员信息

    实现要求: 使用MyBatis查询所有职员信息 create table employee( id int not null auto_increment, name varchar(255) not ...

  9. Java Web程序设计笔记 • 【第7章 会话跟踪技术】

    全部章节   >>>> 本章目录 7.1 会话跟踪技术概述 7.1.1 为什么需要会话跟踪 7.1.2 会话的状态和跟踪 7.1.3 会话跟踪技术 7.1.4 会话跟踪工作流程 ...

  10. 把rocksdb配置成leveldb

    将rocksdb配置成leveldb 1.配置方法 配置方式有三种: 第一种适合进行性能测试对比:是以参数形式在运行db_bench或ycsb-c的时候以参数形式将rocksdb将其配置成leveld ...