爬虫-requests和Selenium

1、了解requests的功能

1.1 使用post和get发送请求

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

GET的用法:

import requests

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

运行结果:

POST的用法:

import requests

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

运行结果:

 1.2 设置超时

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

import requests

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

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

1.3改变编码方式

 

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中的终端里面输入

  pip install selenium

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

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

 

记住这个版本号

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

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

在pycharm中运行下面的代码:

import time
from selenium import webdriver

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

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

2.2 使用Selnium爬取网站

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

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

我之后单独出一期

相关推荐

  1. Python爬虫-request模块

    2024-07-16 08:48:02       28 阅读
  2. 爬虫学习————request模块

    2024-07-16 08:48:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 08:48:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 08:48:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 08:48:02       58 阅读
  4. Python语言-面向对象

    2024-07-16 08:48:02       69 阅读

热门阅读

  1. 卡码网语言基础课 | 10. 平均绩点

    2024-07-16 08:48:02       25 阅读
  2. RoCE-SAN和RoCE区别

    2024-07-16 08:48:02       22 阅读
  3. CSS基础

    2024-07-16 08:48:02       20 阅读
  4. C# 继承

    2024-07-16 08:48:02       26 阅读
  5. 设计模式-三大分类

    2024-07-16 08:48:02       18 阅读
  6. JVM常见面试题2

    2024-07-16 08:48:02       23 阅读
  7. GitHub热门开源项目-2024版

    2024-07-16 08:48:02       24 阅读
  8. 浅谈微服务

    2024-07-16 08:48:02       18 阅读
  9. 深入理解MySQL中的MyISAM与InnoDB存储引擎

    2024-07-16 08:48:02       21 阅读
  10. 值的注意React中的一些默认行为和优化(一)

    2024-07-16 08:48:02       21 阅读