当前位置:   article > 正文

爬虫-requests和Selenium_爬虫用selenium和request

爬虫用selenium和request

1、了解requests的功能

1.1 使用post和get发送请求

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

GET的用法:

  1. import requests
  2. r = requests.get("https://www.baidu.com/")
  3. r = r.text
  4. print(r)

运行结果:

POST的用法:

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

运行结果:

 1.2 设置超时

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

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

1.3改变编码方式

 

  1. import requests
  2. r = requests.get("https://www.baidu.com/")
  3. print(r.encoding)
  4. print(r.text)
  5. r.encoding='utf-8'
  6. print(r.encoding)
  7. 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中运行下面的代码:

  1. import time
  2. from selenium import webdriver
  3. browser = webdriver.Edge()
  4. browser.get("http://www.baidu.com")
  5. time.sleep(10)

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

2.2 使用Selnium爬取网站

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

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.common.keys import Keys
  4. from selenium.webdriver.edge.service import Service
  5. import time
  6. service = Service("E:/ana3/msedgedriver.exe") # 指定驱动程序的位置
  7. driver = webdriver.Edge(service=service) # 创建驱动的实例
  8. driver.get("http://www.python.org") # 发送请求到指定的 URI
  9. if "Python" in driver.title: # 检查页面标题是否包含 "Python"
  10. print("ok") # 如果包含,输出 "ok"
  11. elem = driver.find_element(By.NAME, "q") # 找到参数名为 q 的输入框
  12. elem.clear() # 清空输入框
  13. elem.send_keys("python") # 输入文字
  14. elem.send_keys(Keys.RETURN) # 按回车发送
  15. time.sleep(5) # 保留浏览器窗口 5 秒
  16. driver.close() # 关闭浏览器,释放内存

2.3 Selenium元素定位

我之后单独出一期

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/938231
推荐阅读
相关标签
  

闽ICP备14008679号