爬虫基础-百度数据采集
文章目录 前言一、爬虫的合法性与robots.txt文件1.robots文件 二、防爬虫应对策略1.发送模拟user-Agent2.调整访问频度3.通过验证码验证4.应对网站结构变化5.通过账号权限限制6.通过代理ip规避 三、 配置python网络爬虫开发环境四、网络请求原理五、抓包工具的使用六、爬虫实战
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、爬虫的合法性与robots.txt文件当一个网络爬虫访问一个站点时,它会先检查站点根目录下是否存在robots.txt文件。
京东robots协议
user-agent:用户代理 (隐情)简单地说就是我用什么去访问服务器
一般出现的 Baiduspider 是百度爬虫
通过发送模拟用户代理来通过检验,将要发送至网站服务器的请求的用户代理伪装成一般用户登录网站时使用的用户代理值。
2.调整访问频度通过备用ip测试网站的访问频率值,然后设置访问频率比值略低。
3.通过验证码验证使用IP代理,更换爬虫IP;通过算法识别验证码,使用cookie绕过验证码
4.应对网站结构变化只爬取一次时,在其网站结构调整之前,将需要的数据全部爬取下来,使用脚本对网站结构进行检测,结构变化时候,发出警告并及时停止爬虫。
5.通过账号权限限制通过模拟登录的方法进行规避,往往也需要通过验证码验证。
6.通过代理ip规避通过代理进行IP更换可有效规避网站检测,需注意公用IP代理也是网站重点检测对象。
三、 配置python网络爬虫开发环境 四、网络请求原理爬虫是编写程序模拟浏览器发送请求的过程,先看浏览器发送请求的过程。
浏览网页过程浏览网页过程
统一资源定位符URL是互联网上标准资源的地址,它包含了文件的位置以及浏览器的处理方式等。
DNS是计算机域名系统的缩写,由解析器和域名服务器组成。
3. 请求原理
爬虫在爬取数据时将会作为客户机模拟整个http通信过程,该过程也需要通过HTTP协议实现。HTTP请求过程如下:
请求网址:https://dict.baidu.com/
开启方法:右键检查,快捷键方式Ctrl+Shift+I
查看请求和响应协议格式
实施步骤:
(1)打开google浏览器
(2)输入百度网址,回车打开网站
(3)开启google浏览器抓包工具
(4)定位到“Network”选项
(5)刷新百度
(6)找到抓取的包,分析请求和响应消息内容
(7)熟悉抓包工具其他选项,如:Elements、Console、Sources等常用选项功能与操作
知识讲解:
(1)urllib库简介: https://www.cnblogs.com/zhaof/p/6910871.html
(2)爬虫编程基本步骤
1)导库
2)确定url
3)发送请求
4)获取数据并处理
编写第一个小爬虫实现模拟浏览器发送请求获取百度汉语首页数据,并根据数据写入存储html文件中。
#1.导入爬虫库from urllib import request#2.确定请求urlurl="http://dict.baidu.com/"#3.发送GET 请求,返回response对象response=request.urlopen(url=url)#4.分析与处理相应数据#4.1 请求成功if response.getcode()==200: #4.1.2 获取响应数据 html=response.read().decode("utf-8") #4.1.3 打印 print(html) #4.1.4 保存 with open("dict.html",'w',encoding='utf-8') as f: f.write(html)else: print("无法访问")