python爬虫篇(知识讲解)-简洁秒懂

python爬虫篇(知识讲解)

大家谨记爬虫只是用来方便大家从互联网上检索信息,获取免费资源,不得以危害或者窃取对方资源使用为目的进行违法犯罪。牢记网络安全法。

1.爬虫的准备工作

安装第三方库-requests lxml

使用pip命令直接安装requests

pip install requests
pip install lxml

如果出现失败,请检查网络,或者换源使用阿里云下载(直接换源比较推荐)。

2.爬虫介绍以及基本使用到的方法介绍

概念:(爬虫又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

简单来说就是模拟用户登录,然后批量次的下载网络数据基本的使用方法分为post 和 get 两种请求,

介绍:

GET请求:

  • GET请求用于从服务器获取数据。
  • GET请求将参数附加在URL的末尾,以查询字符串的形式发送给服务器。
  • GET请求的参数信息可以在URL中被看到,因此不适合传输敏感信息。
  • GET请求可以通过浏览器直接访问和书签保存。
import requests

# 发送GET请求
response = requests.get('https://api.example.com/data', params={'key': 'value'})

# 获取响应数据
data = response.text


# 处理响应数据...

POST请求:

  • POST请求用于向服务器提交数据。
  • POST请求将参数包含在请求体中,不会暴露在URL上。
  • POST请求适合传输敏感信息,如用户的用户名和密码等。
  • POST请求不能通过浏览器直接访问和书签保存。
import requests

# 发送POST请求
data = {'key': 'value'}
response = requests.post('https://api.example.com/submit', data=data)

# 获取响应数据 一般情况下是json格式的,具体我会说明怎么查看
result = response.json()

# 处理响应数据...

任务

打开百度的搜索界面,将百度的源代码爬取下来,观察爬取的代码中是否有不同

import requests

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

response = requests.get(url)
print(response.text)

我们会发现代码中存在一些乱码问题,如何避免这个问题呢?使用encoding = 'utf-8’解决

import requests

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

response = requests.get(url)
response.encoding = 'utf-8'

print(response.text)

此时我们发现代码并没有出现错误的情况。

有时候我们会发现爬取代码的时候,当我们使用get请求或者是post请求访问对方网站的时候出现拒绝,此时我们需要使用UA伪装来爬取

UA伪装的定义

UA伪装(User-Agent Spoofing)是一种网络技术手段,用于隐藏或修改用户的浏览器标识信息(User-Agent),以伪装成其他设备、操作系统或浏览器。User-Agent是HTTP请求头中的一部分,用于向服务器提供有关客户端的信息,包括设备类型、操作系统和浏览器类型等。通过伪装User-Agent,可以使服务器误认为请求来自于不同的设备或软件。

UA伪装在网络爬虫、数据采集、网页测试等场景中被广泛使用。通过伪装User-Agent,可以绕过一些网站的限制或访问控制,获取更多的信息或实现特定的功能。然而,UA伪装也可能被滥用,用于恶意攻击、欺骗或非法活动,因此在使用时需要遵守相关法律法规并谨慎使用。

实际上你只需要知道,UA伪装主要是帮你通过一部分反爬虫的拦截就可以了,具体内容不需要过多研究。

那要怎么写呢?

我们直接右键百度界面,打开开发者工具找到网络,随便打开一个文件,然后拉到最下面,找到我箭头指向的user-agent然后直接创建一个新的字典类型的数据,然后把这个以字符串的形式存进去即可。

此时我们只需要在get中加入这个新的字典对象就可以增加爬取的成功性了

import requests

url = "https://www.baidu.com/"
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
}
response = requests.get(url,headers=headers)
response.encoding = 'utf-8'

print(response.text)

处理爬取到的数据

当我们把爬取到的源代码放到html文件中格式化后,我们会发现实际上的代码量是非常大的,如果去源代码中查找的话你需要浪费很多时间,这里建议大家使用浏览器自带的开发工具。f12或者右键检查。

使用流程:

这里要使用到我们之前安装的lxml库。具体使用的是库中的etree模块

这里简单介绍一下操作HTML的基本用法:

在Python中,可以使用`lxml`库中的`etree`模块来操作HTML文档。`etree`提供了一组强大的工具和方法,使得解析、遍历和修改HTML文档变得简单和方便。

下面是使用`etree`操作HTML的基本用法:

1. 导入必要的模块:

from lxml import etree

2. 解析HTML文档:

html = """
<html>
  <body>
    <div class="container">
      <h1>Title</h1>
      <p>Paragraph 1</p>
      <p>Paragraph 2</p>
    </div>
  </body>
</html>

3.查找元素:

# 使用XPath查找元素
elements = tree.xpath("//p")  # 查找所有 <p> 元素
for element in elements:
    print(element.text)  # 输出元素文本内容

# 使用CSS选择器查找元素
elements = tree.cssselect("div.container h1")  # 查找 <div class="container"> 下的 <h1> 元素
for element in elements:
    print(element.text)  # 输出元素文本内容

只需要学会这几个简单的使用,本博客需要用到的知识就够了。主要是带着大家爬取一些内容,进行实战,找到几种类型就可以了。

如有侵权,请联系删除!

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值