网络pa虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
自己理解的含义:通过代码、模拟浏览器上网 然后抓取数据的过程
爬虫是否合法?
1.法律允许
2.有法律风险的
爬虫的分类:
1.获取一整张页面 【通用爬虫】
2.获取一整张页面 部分数据 【聚焦爬虫】
3.检查页面更新、获取页面最新的更新的数据 【增量式爬虫】
爬虫的规则:
1.反爬策略:
门户网站 通过 技术手段 防止爬虫程序对页面爬取数据
2.反 反爬策略
爬虫程序 通过 技术手段 对页面爬取数据
http 与https
service 与 client 进行数据交互的一种形式
request:
User-Agent: 请求载体的身份标识
response:
Content-Type:服务器响应client的数据类型
爬虫技术
1.urllib 【老】
2.requests 【好用】
requests:
1.是什么
python自带的 基于网络请求的模块 功能强大 简单高效
2.干什么
模拟浏览器发送请求
3.怎么用:
1.指定url
2.发送请求【get、post】
3.获取相应的数据
4.存储数据
pip install requests
如何获取一整张页面的部分内容?
1.整个html + html数据解析
2.获取部分html
数据解析:
1.为什么要进行数据解析?
1.为了获取指定的页面数据
html
2.数据解析分类:
1.正则
2.bs4
3.xpath scrapy
3.解析的数据有哪些?
1.数据源:
html
2.文本 或者 图片 =》 html标签里面 或者 标签的属性
4.如何解析?
1.标签定位
2.解析数据
5.聚焦爬虫?
1.指定url
2.发起请求
3.获取相应数据
4.数据解析
5.存储数据
bs4:
数据解析的工具
原理:
1.标签定位
2.解析数据
怎么用:
1.实例化bs4类 BeautifulSoup => 加载 html
2.调用api 标签定位+ 解析数据
pip install bs4 -i https://pypi.douban.com/simple
使用:
bs4 api
例子:pa取大连肯德基店铺
import requests
if __name__ == '__main__':
# 1.url
url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
# ?type = 13 & interval_id = 100:90 & action = & start = 0 & limit = 20
parms = {
"cname":"大连",
"pid": "",
"keyword":"大连",
"pageIndex": "1",
"pageSize": "10",
}
# 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.获取页面数据
page_text = response.text
# 4.存储数据
with open('D:\pycharm\PythonProject\PythonProject2\python_wyx\大连肯德基位置.txt', 'w', encoding="utf-8") as fp:
fp.write(page_text)
print("爬取大连肯德基餐厅结束成功!!!!!!!!!!!")