栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python爬虫

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python爬虫

文章目录
  • 一、爬虫本质
  • 二、第三方模块下载
  • 三、爬取公司信息
  • 四、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',''])

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017749.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号