- 一、爬虫本质
- 二、第三方模块下载
- 三、爬取公司信息
- 四、openpyxl模块
- 五、openpyxl实操
二、第三方模块下载网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间更经常的称为网页追逐者)是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,爬虫是指使用代码模拟用户批量发送网络请求,批量获取数据的行为。
第三方模块想使用前必须先下载才可以导入使用 下载第三方模块需要借助到pip工具(Python自带pip,需要安装的话 请查看主页博客教程) 下载命令: pip 3.8 install 模块名 (pip固定格式 3.8是解释器版本 每个版本想使用都得下载)
清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
豆瓣源:http://pypi.douban.com/simple/
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/
在下载的时候我们我们可能会出现三个问题!!! 1.下载速度很慢 (图1) pip工具默认是从国外的网址下载 速度很慢所以会出错 但是可以我们切换下载地址 下载格式 : pip3.8 install 模块名 -i 源地址
2.下载报错 1>.pip工具版本过低 直接拷贝提示信息里面的更新命令即可 2>.网络波动 关键字是Read timed out (图2) 3>.有些模块在下载使用之前需要提前配置指定的环境
3.模块也有版本 pip3.8 install 模块名==版本号 (图3) ex: pip3.8 install django==1.11.11三、爬取公司信息
目标网址:http://www.redbull.com.cn/about/branch
获取当前网址所有分公司的 名称 地址 邮编 电话
import requests
import re
res = requests.get('http://www.redbull.com.cn/about/branch') # 朝目标地址发送网络请求获取响应数据
with open(r'redmoon.html', 'wb') as f: # 为了避免每次执行程序都要发送网络请求 也可以提前保存页面数据到文件
f.write(res.content) # 获取到的内容写入文件
with open(r'redmoon.html', 'r', encoding='utf8') as f:
data = f.read() # 获取数据
company_name_list = re.findall('(.*?)', data) # 获取所有分公司名称
company_addr_list = re.findall("(.*?)
", data) # 获取所有分公司地址
company_email_list = re.findall("(.*?)
", data) # 获取所有分公司邮编
company_phone_list = re.findall("(.*?)
", data) # 获取所有分公司电话
res = zip(company_name_list, company_addr_list, company_email_list, company_phone_list)
for i in res: # 将上述四个数据链接按照位置对号入座
print("""
公司名称:%s
公司地址:%s
公司邮箱:%s
公司电话:%s
""" % i)
四、openpyxl模块
openpyxl模块主要用书操作Excel表格 也是Pandas底层操作表格的模块
在python中能够操作excel表格的模块有很多 openpyxl属于近几年比较流行的模块 openpyxl针对03版本之前的excel文件兼容性不好 xlwt、xlrd也可以操作excel表格(都是Excel表格类型后缀) 兼容所有版本的excel文件 但是使用方式没有openpyxl简单 1.excel版本问题 03版本之前 excel文件的后缀名 .xls 03版本之后 excel文件的后缀名 .xlsx 如果是MACOSexcel文件的后缀 .csv 2.下载模块 pip3.8 install openpyxl五、openpyxl实操
from openpyxl import Workbook # 导入
wb = Workbook() # 创建excel文件
wb1 = wb.create_sheet('男神表') # 表1命名
wb2 = wb.create_sheet('女生表') # 表2命名
wb3 = wb.create_sheet('屌丝表', 0) # 表3命名 索引0 表三变成开头
wb1.title = '舔狗表' # 表1重命名
wb1.sheet_properties.tabColor = "1072BA" # 表1背景颜色改变
wb.save(r'校友表.xlsx') # 保存表格
wb1['A1'] = 'LebronJames' # 表格坐标A1 输入
wb1['D2'] = 'StephenCurry' # 表格坐标D2 输入
wb1.cell(row=3, column=2, value='Dwight Howard') # 竖3 横2 坐标写入
wb1.append(['username','password','age','gender','hobby']) # 格式化写入
wb1.append(['Meijin1',123,18,'male','read'])
wb1.append(['Meijin2',123,18,'male','read'])
wb1.append(['Meijin3',123,18,'male','read'])
wb1.append(['Meijin4',123,18,'male','read'])
wb1.append(['Meijin4',123,18,'male',None]) # 当没有填值的时候 默认往前排 后面空着 None表示 空着占位
wb1.append([None,123,18,'male',''])



