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. SpringBoot单元测试demo

    引入maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  2. C语言读写二进制文件

    fseek用法 fseek用来移动文件指针.函数原型 int fseek(FILE * stream, long offset, int fromwhere); 参数解释: stream 是文件流指针 ...

  3. App调试的几个命令实践

    1.logcat命令这个命令最简单常用,可查看帮助 第一种事例:adb logcat > /sdcard/mylogcat.txt 第二种事例:adb logcat > D:/Temp/1 ...

  4. python3实战之字幕vtt与字母srt的相互转换

    关于 0.本文将介绍一个字幕格式vtt与srt相互转换的py脚本. 1.代码大部分出自: https://www.cnblogs.com/BigJ/p/vtt_srt.html 2.但是自己针对上面的 ...

  5. 【LeetCode】743. Network Delay Time 解题报告(Python)

    [LeetCode]743. Network Delay Time 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: ht ...

  6. matplotlib 进阶之Artist tutorial(如何操作Atrist和定制)

    目录 基本 plt.figure() fig.add_axes() ax.lines set_xlabel 一个完整的例子 定制你的对象 obj.set(alpha=0.5, zorder=2), o ...

  7. C#WPF数据绑定模板化操作四步走

    前言:WPF数据绑定对于WPF应用程序来说尤为重要,本文将讲述使用MVVM模式进行数据绑定的四步走用法: 具体实例代码如下: 以下代码仅供参考,如有问题请在评论区留言,谢谢 1 第一步:声明一个类用来 ...

  8. oracle 之 cursor:创建存储过程批量执行DDL语句

    说明:使用此过程可任意执行批量DDL语句,调用DDL查询语句时,注意转义字符,使用 ' 转义! 需求:批量删除以CUR_TEST开头的表,且有日志记录. 环境准备:建几张以CUR_TEST开头测试表. ...

  9. vue 在实现关键字远程搜索时出现数据不准确的原因

    实现通过输入关键字查询项目, 页面搜索规则框部分 js部分 之前通过在data中定义一个变量,然后在methods中filterFn方法获取当时输入的值去后台请求数据,然后把请求的数据存放在state ...

  10. 关于 this.$route.meta.operations.includes('delete') 取不到值的问题

    原因是:src/mock/api/sys.login.js中定义的路径 要与src/router/modules/下定义的路由要一致 作用this.$route.matched可以查看匹配信息 来自为 ...