1 requests模块的基本使用
""" 爬虫 """ """ 什么是爬虫? 就是通过编写程序模拟浏览器上网,然后让其去互联网上爬取数据的过程 爬虫的分类: 通用爬虫:抓取互联网中的一整张页面数据 聚焦爬虫:抓取页面中的局部数据 增量式爬虫:用来监测网站数据更新的情况,以便爬取到网站最新更新出来的数据 """ """ requests模块:Python中封装好的一个基于网络请求的模块。 作用:用来模拟浏览器发请求
requests模块的编码流程: 1.指定url 2.发起请求 3.获取响应数据 4.持久化存储 """
import requests
""" 第一版:中文乱码 """ # 爬取百度首页 baidu_url = 'https://www.baidu.com/' # 请求发送get:get返回值是一个响应对象 response = requests.get(url=baidu_url) # 响应对象返回的是以字符串形式存储的响应数据 data = response.text print(data) # 将爬取到的数据存进文件里 with open('baidu.html', encoding='utf-8', mode='w') as f: f.write(data)
""" 第一版:解决中文乱码 """
# 爬取百度首页 baidu_url = 'https://www.baidu.com/' # 请求发送get:get返回值是一个响应对象 response = requests.get(url=baidu_url) # 修改响应数据的编码格式 response.encoding = 'utf-8' # 响应对象返回的是字符串形式的响应数据 data2 = response.text print(data2)
with open('baidu2.html', encoding='utf-8', mode='w') as f: f.write(data)
2 实现一个简单的网页采集器
""" UA(User-Agent)检测:门户网站通过检测请求载体的身份标识判定改请求是否为爬虫发起的请求,是的话会被拒绝访问。 UA伪装:将爬虫发起的请求伪装成浏览器的身份标识 Microsoft Edge浏览器的User-Agent:(检查-网络 里面去查找这个,见下面图片) Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29 """
import requests
# 利用搜狗引擎搜索中国的url,"https://www.sogou.com/web?query=中国",#需要让url携带的参数动态化,观察结构 keyword_url = "https://www.sogou.com/web?" # 实现参数动态化 you_want_search = input("请输入需要查找的关键字:") # 将输入的参数存储成一个字典,键为url的关键字 key_dict = {'query': you_want_search}
# 解决UA检测:伪装成Microsoft Edge浏览器的身份标识 head = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29' }
# params = 请求参数; response = requests.get(url=keyword_url, params=key_dict, headers=head)
# 修改响应数据的编码格式,防止乱码 response.encoding = 'utf-8' # 返回的是字符串形式的响应数据 datas = response.text
print(datas) filename= you_want_search + '.html' with open(filename, encoding='utf-8', mode='a') as f: f.write(datas)
3 浏览器的身份标识获取:User-Agent
(1)对网页右键,选择“检查”
(2)选择 “网络”,如下图步骤
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试