文章目录
1.概念理解
爬虫是通过代码、模拟浏览器上网 然后抓取数据的过程 数据解析
2.爬虫是否合法
(1)法律允许
(2)有法律风险的
3.统一规定 【法律界限】
robots.txt协议
4.爬虫的分类:
(1)获取一整张页面 【通用爬虫】
(2)获取一整张页面 部分数据 【聚焦爬虫】
(3)检查页面更新、获取页面最新的更新的数据 【增量式爬虫】
5.爬虫的规则:
(1)反爬策略:门户网站 通过 技术手段 防止爬虫程序对页面爬取数据
(2)反 反爬策略:爬虫程序 通过 技术手段 对页面爬取数据
6.http 与https
service 与 client 进行数据交互的一种形式
request:
User-Agent: 请求载体的身份标识
response:
Content-Type:服务器响应client的数据类型
7.爬虫技术
(1)urllib 【老】
(2)requests 【好用】
- 定义:python自带的 基于网络请求的模块 功能强大 简单高效
- 功能:模拟浏览器发送请求
- 用法:
1.指定url
2.发送请求【get、post】
3.获取相应的数据
4.存储数据
8. 安装
pip install requests
9. 使用
(1) 通用爬虫
- 爬取百度首页
# 爬取百度首页
import requests
'''
整个html + html数据解析【数据解析没讲】
获取部分html
'''
if __name__ == '__main__':
# 1.url
url = "https://www.baidu.com/"
# 2.发送请求
response = requests.get(url=url)
# 3.获取页面数据
response.encoding = "utf-8"
page_info = response.text
# 4.存储数据
with open(r"D:\sxwang\project\pycharm\python-sk\data\baidu.html", "w", encoding="utf-8") as fp:
fp.write(page_info)
- 添加parms提交参数并提交headers进行伪装
import requests
'''
user -agent 检查:
门户网站检查 身份 【反爬机制】
ua 伪装: =》 【反 反爬机制】
'''
if __name__ == '__main__':
# 1.url
url = "https://www.sogou.com/web"
name = input("输入一个搜索词:")
parms = {
"query": name
}
# ua 伪装 =》 模拟浏览器上网
headers = {
"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
# 2.发送请求
response = requests.get(url=url, params=parms, headers=headers)
# 3.获取页面数据
response.encoding = "utf-8"
page_info = response.text
# 4.存储数据
with open(f".\data\{name}.html", "w", encoding="utf-8") as fp:
fp.write(page_info)
(2) 数据解析
1.为什么要进行数据解析?
答:为了获取指定的页面数据。
2.数据解析分类
1.正则 【了解】
2.bs4
3.xpath 【重要】 scrapy
3.解析的数据有哪些?
1.数据源:html
2.文本 或者 图片 html标签里面 或者 标签的属性
4.如何解析?
1.标签定位
2.解析数据
5.聚焦爬虫
1.指定url
2.发起请求
3.获取相应数据
4.数据解析
5.存储数据
(3) bs4
数据解析的工具
1.原理:
1.标签定位
2.解析数据
2.使用:
// 安装
pip install bs4 -i https://pypi.douban.com/simple
- 知识点概况
// 具体使用
from bs4