首页 > 编程知识 正文

爬虫抓取百度首页,爬虫爬取百度

时间:2023-05-04 06:30:16 阅读:215239 作者:4148

爬虫基础-百度数据采集

文章目录 前言一、爬虫的合法性与robots.txt文件1.robots文件 二、防爬虫应对策略1.发送模拟user-Agent2.调整访问频度3.通过验证码验证4.应对网站结构变化5.通过账号权限限制6.通过代理ip规避 三、 配置python网络爬虫开发环境四、网络请求原理五、抓包工具的使用六、爬虫实战


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、爬虫的合法性与robots.txt文件

当一个网络爬虫访问一个站点时,它会先检查站点根目录下是否存在robots.txt文件。

1.robots文件

京东robots协议
user-agent:用户代理 (隐情)简单地说就是我用什么去访问服务器
一般出现的 Baiduspider 是百度爬虫

二、防爬虫应对策略 1.发送模拟user-Agent

通过发送模拟用户代理来通过检验,将要发送至网站服务器的请求的用户代理伪装成一般用户登录网站时使用的用户代理值。

2.调整访问频度

通过备用ip测试网站的访问频率值,然后设置访问频率比值略低。

3.通过验证码验证

使用IP代理,更换爬虫IP;通过算法识别验证码,使用cookie绕过验证码

4.应对网站结构变化

只爬取一次时,在其网站结构调整之前,将需要的数据全部爬取下来,使用脚本对网站结构进行检测,结构变化时候,发出警告并及时停止爬虫。

5.通过账号权限限制

通过模拟登录的方法进行规避,往往也需要通过验证码验证。

6.通过代理ip规避

通过代理进行IP更换可有效规避网站检测,需注意公用IP代理也是网站重点检测对象。

三、 配置python网络爬虫开发环境

四、网络请求原理

爬虫是编写程序模拟浏览器发送请求的过程,先看浏览器发送请求的过程。

浏览网页过程
浏览网页过程
统一资源定位符URL是互联网上标准资源的地址,它包含了文件的位置以及浏览器的处理方式等。
DNS是计算机域名系统的缩写,由解析器和域名服务器组成。


3. 请求原理
爬虫在爬取数据时将会作为客户机模拟整个http通信过程,该过程也需要通过HTTP协议实现。HTTP请求过程如下:

由HTTP客户端向服务器发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接HTTP服务器从该端口监听客户端的请求一旦收到请求,服务器会向客户端返回一个状态,比如:"HTTP/1.1 200 ok ",以及返回的响应内容,如请求的文件、错误的消息、或其他信息。


五、抓包工具的使用

请求网址: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("无法访问")

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。