专业做外贸的网站,2015网站建设,广州市网络营销推广平台,登录wordpress建立数据库一、网络爬虫介绍
网络爬虫#xff08;Web Crawler#xff09;是一种自动抓取互联网信息的程序#xff0c;它能够高效地从海量网页中提取有价值的数据。作为数据采集的利器#xff0c;爬虫技术在数据分析、搜索引擎、价格监控等领域有着广泛应用。本文将带你全面了解Pytho…一、网络爬虫介绍
网络爬虫Web Crawler是一种自动抓取互联网信息的程序它能够高效地从海量网页中提取有价值的数据。作为数据采集的利器爬虫技术在数据分析、搜索引擎、价格监控等领域有着广泛应用。本文将带你全面了解Python网络爬虫的开发。
robots.txt规则
robots.txt 是网站与网络爬虫沟通的标准协议文件它规定了哪些内容可以被爬取哪些应该被禁止。作为爬虫开发者理解并遵守 robots.txt 规则是合法合规爬取的基础。
通过在网站后加上robots.txt就可以查看当前网站的robots规则 完全开放 User-agent: * Disallow: 完全禁止 User-agent: * Disallow: / 部分限制 User-agent: * Disallow: /admin/ Disallow: /private/ Allow: /public/ Crawl-delay: 2 针对特定爬虫 User-agent: Googlebot Disallow: /nogoogle/ User-agent: * Disallow: /noothers/ 掌握robots.txt规则是每个爬虫开发者的必修课。通过合理遵守这些规则我们既能获取所需数据又能维护良好的网络生态。记住负责任的爬虫开发是技术可持续发展的基础。
二、requests库
requests 是 Python 中最流行的 HTTP 客户端库以其简洁优雅的 API 设计著称。本文将全面介绍 requests 库的使用方法和最佳实践。
1、安装requests库
在开始之前确保你已经安装了requests库。如果尚未安装可以通过pip轻松安装 pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple 2、网页的源代码
如果通常我们想获取网页的内容我们是查看页面里的内容但是我们使用代码去获取资源时就需要用到网页的源代码。
我们通过右击网页空白处点击查看源代码选项 但是通过这种方法无法获得全部信息通过JavaScript脚本语言可以查看更多信息。
点击检查选项可以查看到脚本代码 3、获取网页资源
get(函数 requests.get(url, paramsNone, **kwargs) url请求的 URL必需params查询参数字典或字节序列会自动附加到 URL**kwargs其他可选参数headers, timeout, auth 等 import requestsresponse requests.get(https://api.github.com)
print(response.status_code) # 打印状态码
print(response.text) # 打印响应内容
params {key1: value1, key2: value2}
response requests.get(https://httpbin.org/get, paramsparams)
print(response.url) # 查看实际请求的URL
response.status_codeHTTP 状态码response.text响应内容字符串形式response.content响应内容字节形式response.json()将 JSON 响应解析为 Python 对象response.headers响应头字典response.cookies响应 cookiesresponse.elapsed请求耗时response.raise_for_status()如果请求失败状态码非200抛出异常
post()函数 requests.post(url, dataNone, jsonNone, **kwargs) 参数说明url请求的目标 URL必需data表单数据字典、字节或文件对象jsonJSON 可序列化的 Python 对象**kwargs其他可选参数headers, files, auth 等
import requestspayload {key1: value1, key2: value2}
response requests.post(https://httpbin.org/post, datapayload)print(response.status_code)
print(response.json()) # 查看服务器返回的JSON响应 三、selenium库
Selenium 是一个能让你「用代码操作浏览器」的开源工具。 常见用途 自动化功能测试 重复性任务脚本抢票、签到、填表 抓取需要执行 JS 的页面数据 1、环境搭建 安装 Pythonhttps://www.python.org 下载 3.7。 安装 Selenium pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple Chrome内核的浏览器 Chrome 驱动镜像CNPM Binaries Mirror 把解压后的 chromedriver.exe 放到 – 任意目录并记录路径或 – 直接丢进 Python 安装目录的 Scripts 文件夹已在系统 Path 中。 2.验证命令行输入 chromedriver 不报错就 OK。 4. Edge内核的浏览器 访问官方镜像Microsoft Edge WebDriver | Microsoft Edge Developer 驱动版本必须与 Edge 浏览器版本一致。 下载后解压得到 msedgedriver.exe建议重命名为 edgedriver.exe 方便记忆。
在浏览器的关于浏览器选项就可以看到浏览器的内核版本、 2、驱动浏览器
在selenium库中通过以下代码可以查看支持的浏览器类型 webdriver.浏览器类型名 通过以上方法我们也可以加载浏览器的驱动使用形式如下如下 webdriver.浏览器类型名executable_pathoptionsservicekeep_alive executable_path指定驱动路径webdriver.Chrome(executable_pathchromedriver.exe)options浏览器选项对象webdriver.Chrome(optionschrome_options)service驱动服务配置webdriver.Chrome(serviceservice)keep_alive保持连接webdriver.Chrome(keep_aliveTrue)
服务配置参数
from selenium import webdriver# 基本初始化
driver webdriver.Chrome()# 带选项初始化
from selenium.webdriver.chrome.options import Optionschrome_options Options()
chrome_options.add_argument(--headless) # 无头模式
chrome_options.add_argument(--disable-gpu) # 禁用GPU加速
chrome_options.add_argument(--window-size1920x1080) # 设置窗口大小driver webdriver.Chrome(optionschrome_options) 通过以下方法就可以的读取浏览器内容
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time# 方案 A驱动已加入 PATH
driver webdriver.Edge()# 方案 B手动指定驱动路径取消下一行注释
# driver webdriver.Edge(executable_pathrC:\path\to\edgedriver.exe)driver.get(https://www.baidu.com)
driver.find_element(By.ID, kw).send_keys(Edge Selenium, Keys.RETURN)
time.sleep(3)
driver.save_screenshot(baidu_result.png)
driver.quit()
send_keys() 是 Selenium WebDriver 中用于向网页元素输入内容的核心方法主要用于文本框、文本域等可输入元素的交互操作。
from selenium import webdriver
from selenium.webdriver.common.by import Bydriver webdriver.Chrome()
driver.get(https://www.example.com/login)# 定位用户名输入框并输入文本
username driver.find_element(By.ID, username)
username.send_keys(testuser)# 定位密码输入框并输入文本
password driver.find_element(By.NAME, password)
password.send_keys(securepassword123) from selenium.webdriver.common.keys import Keyssearch_box driver.find_element(By.NAME, q)
search_box.send_keys(selenium) # 输入文本
search_box.send_keys(Keys.RETURN) # 模拟回车键
Keys.RETURN回车键element.send_keys(Keys.RETURN)Keys.TABTab键element.send_keys(Keys.TAB)Keys.ESCAPEEsc键element.send_keys(Keys.ESCAPE)Keys.BACK_SPACE退格键element.send_keys(Keys.BACK_SPACE)Keys.CONTROLCtrl键element.send_keys(Keys.CONTROL a)Keys.SHIFTShift键element.send_keys(Keys.SHIFT hello)Keys.ARROW_UP上箭头element.send_keys(Keys.ARROW_UP)