python爬虫基础

114 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.http协议:服务器和客户端进行数据交互的一种形式 其中常用请求头信息: --User-Agent:请求载体的身份标识 --Connection:请求完毕后,是断开连接还是保持连接 常用响应头信息 --Content-Type:服务器响应回客户端的数据类型

2.https协议:安全的超文本传输协议 加密方式 --对称秘钥加密 --非对称秘钥加密 --证书秘钥加密(常用)(https采用)

3.requests模块:python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高 作用:模拟浏览器发请求 requests模块的编码流程: --指定url --发起请求(get或者post) --获取响应数据 --数据解析 --持久化存储

4.编码示例:爬取搜狗首页页面数据,无样式

5.数据解析 --聚焦爬虫:爬取页面中的指定页面内容 --数据解析分类: --正则 --bs4 --xpath(***) --数据解析原理概述: --解析的局部文本内容都会在标签之间或者标签对应的属性中进行存储 --1.进行指定标签的定位 --2.标签或者标签对应的属性中存储的数据值进行提取(解析)

6.正则数据解析

6.实例

7.bs4进行数据解析 --数据解析的原理 --1.标签定位 --2.提取标签、标签属性中存储的数据值 --bs4数据解析的原理 --1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中 --2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取 --如何实例化BeautifulSoup对象: --导入 --对象的实例化 --1.将本地的html文档中的数据加载到该对象中

		--2.将互联网上获取的页面源码加载到该对象中
			Page_text = response.text (上面获取到的网页)
			Soup = BeautifulSoup(page_text,'html')
	--提供的用于数据解析的方法和属性:
		
		--soup.tagName返回的是html中第一次出现的tagName标签
		--soup.find('tagName')作用同上
		
		后面再跟一个class代表具有这个class名的div标签,但注意,class后要加一个_
		--soup.find_all('tagName):返回符合要求的所有标签
		
		--soup.select('某种选择器(id,class,标签……选择器)'),返回的是一个列表
		
		--层级选择器
			--soup.select('.tang > ul > li > a'):表示的是一个层级
			--soup.select('.tang > ul a'):空格表示的是多个层级(ul和a之间是一个空格)
		--获取标签之间的文本数据:
			
			--soup.a.text/string/get_text()
			--3个之间的区别:
				--text/get_text():可以获得某一个标签中所有的文本内容
				--string:只可以获取该标签下面直系的文本内容
		--获取标签中的属性值:
			
			--soup.a['href']