python爬虫基础篇一,理解思路一看就会

相信有许多人都向往代码给人带来的魅力,今天带大家入门爬虫,感受一下,代码的快乐

大家应该都听过爬虫,但是什么是爬虫呢?

其实可以了解为:通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程

爬虫可以做什么呢?
1、收集数据 2、调研 3、刷流量和秒杀 当然更多是为了就业,赚取很多的玛尼了。

爬虫究竟是合法还是违法的?
爬虫在法律中是不被禁止的
但是具有违法风险,就比如你有一把水果刀,你用来削水果当然不违法哈,但是你用来捅人,那事情就大了,你肯定就要进局子了。
这就分为了善意爬虫 和恶意爬虫 看你怎么利用自己所学到的知识了

那我们该如何避免进局子呢?
咱们就应该时常的优化自己的程序,避免干扰被访问网站的正常运行
在使用,传播爬取到数据时,审查抓取到的内容,如果发现设计用户隐私或者商业机密等敏感内容要及时停止和传播

爬虫在使用场景中的分类
通用爬虫:
抓取系统重要组成部分。抓取的是一整张页面数据。
聚焦爬虫:
是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容。
增量式爬虫:
监测网站中更新的情况,只会抓取网站中最新更新出来的数据

反爬机制
门户网站,可以通过制定相应的策略或者阻止手段,防止爬虫程序进行数据的爬取。

反反爬策略
爬虫程序也可以制定相关的策略,破解门户网站中具备的反爬机制,从而获取门户网站中相关的数据

Robots.txt 协议
君子协议。规定了网站哪些数据可爬,哪些不可爬

http协议
概念:就是服务器和客户端进行数据交互的一种形式。

常用请求头信息
User_Agent:表示请求载体的身份标识
Connection:表示请求完毕后,是断开连接还是保持连接
常用相应头信息
Content-Type:服务器 响应回客户端的数据类型

Https协议:
概念:安全的超文本传输协议(涉及到数据加密)

好啦,大家了解到了爬虫的基本概念,那就开始进入正题,开始进行爬虫练习!

首先我们要知道怎么进行爬取页面

我给大家列取一下爬虫五步曲,记住基本的思路,然后慢慢用代码实现就好了(我这里使用的requests模块,也是比较不错的模块,简洁好上手)

#先导入包,requests

#指定url

#发起请求

#获取响应数据

#持续化存储

把思路记住,代码交给我来实现。你们只管看,然后再动手操作。

今天就爬取个百度页面入门吧,我会持续更新。

首先打开百度,复制百度的链接,地址用url表示
在这里插入图片描述

#1.先导入包,requests
import requests

#要实现的需求,爬取百度页面

#2.指定url

url = "https://www.baidu.com/"

#3.发起请求 get方法会返回一个响应对象

response = requests.get(url= url)
#对获取的到内容,设置编码:防止中文乱码
response.encoding = 'utf-8'

#4.获取响应数据
page_text = response.text

print(page_text)#输出获取到的数据

#5.持续化存储

with open("./baidu.html",'w',encoding='GBK')as fp: #保存获取到的数据到本地,存为html文件
    fp.write(page_text)
    print("爬取数据结束")

在这里插入图片描述

短短几行代码按照思路一步步写入并补充,就能得到百度的页面了,这里我们还要补充一个知识点
我们还需要写入一个伪装头,代表是浏览器正常访问,不然会被检测到,如果人家知道你是来爬虫的,可能会拒绝你的访问

伪装头可以在百度页面的基础上按F12或者右键检查,都可以进入调试页面。
根据图示,找到伪装头 User-Agent
在这里插入图片描述

#1.先导入包,requests
import requests

#要实现的需求,爬取百度页面
#把伪装头复制进来,整个代码就完成了
headers = {
    
    
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36",
        'Connection': 'keep-alive'
    }

#2.指定url

url = "https://www.baidu.com/"

#3.发起请求 get方法会返回一个响应对象

response = requests.get(url= url,headers=headers) #使用伪装头,发送请求
#对获取的到内容,设置编码:防止中文乱码
response.encoding = 'utf-8'

#4.获取响应数据
page_text = response.text

print(page_text)#输出获取到的数据

#5.持续化存储

with open("./baidu.html",'w',encoding='utf-8')as fp: #保存获取到的数据到本地,存为html文件
    fp.write(page_text)
    print("爬取数据结束")

现在就实现了此次需求,大家多多精进,练习巩固

快去试试康康吧

猜你喜欢

转载自blog.csdn.net/XahY66/article/details/117374707