爬虫-requests和Selenium

1、了解requests的功能

1.1 使用post和get发送请求

HTTP中常见发送网络请求的方式有两种,GET和POST。GET是从指定的资源请求数据,POST是向指定的资源提交要被处理的数据。

GET的用法:

python 复制代码
import requests

r = requests.get("https://www.baidu.com/")
r = r.text
print(r)

运行结果:

POST的用法:

python 复制代码
import requests

r = requests.post("http://httpbin.org/post", data = {'key':'value'})
r = r.text
print(r)

运行结果:

1.2 设置超时

在请求时给timeout一个值,单位是秒,如果请求时间超过这个值,自动断开。

python 复制代码
import requests

r = requests.get("https://github.com/", timeout=1)
这个成功
python 复制代码
import requests

r = requests.get("https://github.com/", timeout=0.0001)
这个失败

1.3改变编码方式

python 复制代码
import requests

r = requests.get("https://www.baidu.com/")
print(r.encoding)
print(r.text)
r.encoding='utf-8'
print(r.encoding)
print(r.text)

输出结果:

1.4 设置代理IP

爬虫一般是是以每次分钟数百次甚至上万次的频率访问目标网站,如果爬虫是进行长时间的大量爬取工作的话,一定要给爬虫配置代理IP,否则会被ban。

2、自动化测试工具Selenium

2.1 Selenium安装

在PyCharm中的终端里面输入

python 复制代码
  pip install selenium

Selenium需要使用浏览器里面的driver打开浏览器来进行交互。

这里讲一下webdriver的安装(Edge为例),火狐浏览器还需要安装geckodriver。

记住这个版本号

然后打开这个网站:Microsoft Edge WebDriver |Microsoft Edge 开发人员

然后点击开始下载,把解压出来的exe文件复制到与python.exe同一个文件夹下

在pycharm中运行下面的代码:

python 复制代码
import time
from selenium import webdriver

browser = webdriver.Edge()
browser.get("http://www.baidu.com")
time.sleep(10)

如果弹出百度的网页,则安装成功。

2.2 使用Selnium爬取网站

可以执行下面的代码感受一下:

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.edge.service import Service
import time

service = Service("E:/ana3/msedgedriver.exe")  # 指定驱动程序的位置
driver = webdriver.Edge(service=service)  # 创建驱动的实例
driver.get("http://www.python.org")  # 发送请求到指定的 URI
if "Python" in driver.title:  # 检查页面标题是否包含 "Python"
    print("ok")  # 如果包含,输出 "ok"

elem = driver.find_element(By.NAME, "q")  # 找到参数名为 q 的输入框
elem.clear()  # 清空输入框
elem.send_keys("python")  # 输入文字
elem.send_keys(Keys.RETURN)  # 按回车发送

time.sleep(5)  # 保留浏览器窗口 5 秒

driver.close()  # 关闭浏览器,释放内存

2.3 Selenium元素定位

我之后单独出一期

相关推荐
陈无左耳、9 小时前
HarmonyOS学习第3天: 环境搭建开启鸿蒙开发新世界
学习·华为·harmonyos
柃歌10 小时前
【UCB CS 61B SP24】Lecture 7 - Lists 4: Arrays and Lists学习笔记
java·数据结构·笔记·学习·算法
柃歌10 小时前
【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记
java·数据结构·笔记·学习·算法
虾球xz11 小时前
游戏引擎学习第115天
学习·游戏引擎
BUG 劝退师11 小时前
C语言预处理学习笔记
c语言·笔记·学习
Chambor_mak12 小时前
stm32单片机个人学习笔记16(SPI通信协议)
stm32·单片机·学习
知初~13 小时前
Scala基础学习
开发语言·学习·scala
花王江不语13 小时前
设计模式学习笔记
笔记·学习·设计模式
前端熊猫13 小时前
CSS Grid 布局学习笔记
css·笔记·学习·grid
梦里是谁N14 小时前
【deepseek之我问】如何把AI技术与教育相结合,适龄教育,九年义务教育,以及大学教育,更着重英语学习。如何结合,给出观点。结合最新智能体Deepseek
人工智能·学习