一、背景说明

1.什么是爬虫

通过编程,模拟浏览器上网,然后让其去互联网上抓取数据的过程,我在一般都是用来爬取网上的数据玩,有时候也会用爬虫来下载图片。

2.爬虫中的矛与盾

反爬机制:门户网站通过制定响应的策略或者技术手段,防止爬虫程序进行网站数据爬取
反反爬机制:破解反爬机制
robots.txt协议:规定那些数据可以爬取,哪些不能爬取。
注意:数据不能乱爬吼,要遵循,robots.txt的协议哦[狗头]。

3.爬虫的分类

通用爬虫:抓取互联网中的一整张页面数据
聚焦爬虫:在通用爬虫的基础上,抓取页面中的特定的局部内容。
增量爬虫:检测网站中数据更新情况,只会抓取网站中最新更新出来的数据

4.爬虫流程

主要用的模块为requests,主要的流程如下图所示,我们以爬取百度搜索结果的爬虫为例来解释爬虫的运作过程。
WX20221129-175743@2x.png

二、百度知道数据爬取要点

1.流程解析

将特定种子短语,输入到爬取连接中,获取返回结果,并对结果进行解析保存。举例,将百度知道返回的结果进行抓取保存。
2022-11-30 17-18-21屏幕截图.png

2.依赖库

使用pip安装
请在命令行中键入:

$ pip install baiduspider
3.BaiduSpider简介

BaiduSpider 的独特功能:
节省提取数据的时间,对于类似深度学习项目的数据模型建立与训练起到了良好的帮助。
精准提取数据,并删除广告。
搜索结果大而全,支持多种搜索类型,支持多种返回类型。

4.封锁ip解决方案

(1)定义:封锁IP——当计算机或系统受到外部攻击时,管理员可以通过屏蔽攻击源IP地址来抵御攻击。通过防火墙和路由器配置,可以封锁某个IP,禁止与其连接,从而达到抵御攻击的作用。但事实上大多数的攻击,管理员根本没有时间反应,一般在反应过来后系统已经崩溃。
(2)原因:百度网站的数据具有反爬取机制,防止第三方爬取百度数据
(3)解决方案:不停变换ip地址,这就需要ip地址池。目前有第三方ip地址厂商准门提供ip代理。收费标准大概再每月几十块钱。
(4)ip代理商:本方案采用青果网络。只需添加几行代码可解决。https://www.qg.net/


        proxy = "https://proxy.qg.net/extract?Key=73F8B4FC&Num=1&AreaId=&Isp=&DataFormat=txt&DataSeparator=%5Cr%5Cn&Detail=0"
        reponse = requests.get(proxy)
        #重试机制
        if ":" not in reponse.text:
            for i in range(3):
                print("开始重试")
                reponse = requests.get(proxy)
                print("ip:", reponse.text)
                if ":" in reponse.text:
                    break
4.代码简介

代码文件baiduzhidao.py
1.获取要爬取的关键词列表
2.将关键词提交到爬取链接中
3.将爬取链接提交到ip代理中
4.返回爬取结果,保存结果

标签: none

添加新评论