百度不收录哪些网站,wordpress 影音插件,施工企业岗位证书有哪些,男科医院和正规医院哪家好前戏: 1.你是否在夜深人静的时候#xff0c;想看一些会让你更睡不着的图片却苦于没有资源... 2.你是否在节假日出行高峰的时候#xff0c;想快速抢购火车票成功..。 3.你是否在网上购物的时候#xff0c;想快速且精准的定位到口碑质量最好的商品.
…前戏: 1.你是否在夜深人静的时候想看一些会让你更睡不着的图片却苦于没有资源... 2.你是否在节假日出行高峰的时候想快速抢购火车票成功..。 3.你是否在网上购物的时候想快速且精准的定位到口碑质量最好的商品.
什么是爬虫: - 通过编写程序模拟浏览器上网然后让其去互联网上抓取数据的过程
爬虫的价值: -实际应用 -就业
爬虫究竟是合法还是违法的? 在法律中是不被禁止 具有违法风险 善意爬虫 恶意爬虫
爬虫带来的风险可以体现在如下2方面: -爬虫干扰了被访问网站的正常运营 -爬虫抓取了收到法律保护的特定类型的数据或信息
如何在使用编写爬虫的过程中避免进入局子的厄运呢? - 时常的优化自己的程序避免干扰被访问网站的正常运行 -在使用传播爬取到的数据时审查抓取到的内容如果发现了涉及到用户因此商业机密等敏感内容需要及时停止爬取或传播
爬虫在使用场景中的分类 -通用爬虫: 抓取系统重要组成部分。抓取的是一整张页面数据。 -聚焦爬虫: 是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。 -增量式爬虫: 检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。 爬虫的矛与盾 反爬机制 门户网站可以通过制定相应的策略或者技术手段防止爬虫程序进行网站数据的爬取。 反反爬策略 爬虫程序可以通过制定相关的策略或者技术手段破解门户网站中具备的反爬机制从而可以获取门户 robots.txt协议:任意网站后/robots.txt即可见 君子协议。规定了网站中哪些数据可以被爬虫爬取哪些数据不可以被爬取。
http协议 - 概念:就是服务器和客户端进行数据交互的一种形式。
常用请求头信息:请求载体的身份标识
- User-Agent:Connection:请求完毕后是断开连接还是保持连接 常用响应头信息 -Content-Type:服务器响应回客户端的数据类型 https协议:- 安全的超文本传输协议(security) 加密方式 对称秘钥加密 非对称秘钥加密 证书秘钥加密 正文
import requests# 检查当前脚本是否作为主程序运行
if __name__ __main__:# 定义 KFC 官方网站获取门店列表信息的 URLurl http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx# 定义 HTTP 请求的头部信息模拟浏览器请求headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0}# 提示用户输入一个位置信息作为搜索门店的关键词keyword input(enter location) # 例如 北京# 循环请求第1页到第9页的数据for page in range(1,10): # 定义发送请求时所需的参数params {op: keyword, # 操作类型为关键词搜索cname: , # 城市名称此处为空pid: , # 其他参数此处为空keyword: keyword, # 用户输入的关键词pageIndex: page, # 当前请求的页面索引pageSize: 1000, # 每页显示的门店数量}# 尝试发送请求并处理响应try:# 发送 GET 请求请求参数包括 URL、参数和头部信息response requests.get(urlurl, paramsparams, headersheaders)# 检查响应状态码如果不是 200将引发 HTTPError 异常response.raise_for_status() # 获取响应内容page_text response.text# 构建文件名包括关键词、页码和 .html 扩展名filename f{keyword}_page_{page}.html# 打开一个文件以写入模式打开并指定编码为 utf-8with open(filename, w, encodingutf-8) as fp:# 将响应内容写入到文件中fp.write(page_text)# 打印一条消息表明文件已经成功保存print(f{filename} 保存成功!!!)# 捕获由 requests 库抛出的任何异常except requests.RequestException as e:# 打印异常信息print(f请求错误: {e})