爬虫-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元素定位

我之后单独出一期

相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习