python爬虫测试
0.背景:要下合适自己的驱动,不然都是报错!!
你需要完成以下两步:
-
检查你的 Chrome 浏览器版本。
- 打开 Chrome,在地址栏输入
chrome://settings/help。 - 你会看到你的 Chrome 版本号,例如
版本 120.0.6099.110。
- 打开 Chrome,在地址栏输入
-
下载对应版本的
ChromeDriver。- 访问新的官方下载地址:Chrome for Testing availability
- 在页面上找到和你的浏览器版本号最匹配的
chromedriver,然后下载win64版本(如果你的系统是64位)。 - 下载下来的是一个 zip 压缩包,解压后会得到
chromedriver.exe文件。
-
在代码中指定
chromedriver.exe的路径。
这是最关键的一步。你需要使用Service对象来告诉 Selenium -
chromedriver.exe在哪里。假设你把
chromedriver.exe解压到了C:\webdriver目录下。
1.selenium基本使用:
from selenium import webdriver
# 1. 导入 Service 类
from selenium.webdriver.chrome.service import Service
# (2) 创建浏览器操作对象
# chromedriver.exe 的路径
path = r'C:\Users\liqi1\Downloads\chromedriver-win64\chromedriver-win64\chromedriver.exe'
# 2. 创建一个 Service 对象
service = Service(executable_path=path)
# 3. 将 service 对象传递给 webdriver.Chrome
# 注意这里用的是关键字参数 service=...
browser = webdriver.Chrome(service=service)
# (3)访问网站
url = 'https://www.jd.com/'
print(f"正在访问: {url}")
browser.get(url)
# page_source获取网页源码
content = browser.page_source
print("已成功获取网页源码:")
# 为了方便查看,只打印前500个字符
print(content[:500])
# 记得在程序结束时关闭浏览器
browser.quit()


2.healess无头浏览器启动demo:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
def share_browser():
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# path是你自己的chrome浏览器的文件路径
# 注意:如果你的Chrome是标准安装,这行通常可以省略,Selenium能自己找到
browser_path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = browser_path
# === 关键改动在这里 ===
# 1. 指定你下载的 chromedriver.exe 的路径
driver_path = r'C:\Users\liqi1\Downloads\chromedriver-win64\chromedriver-win64\chromedriver.exe' # <-- !!! 修改这里为你自己的路径 !!!
# 2. 创建一个Service对象
service = Service(executable_path=driver_path)
# 3. 在创建浏览器实例时传入 service 和 options
browser = webdriver.Chrome(service=service, options=chrome_options)
return browser
# --- 主程序 ---
try:
print("正在启动浏览器...")
browser = share_browser()
url = 'https://www.baidu.com'
print(f"正在访问: {url}")
browser.get(url)
# 打印页面标题,验证是否成功
print(f"页面标题是: {browser.title}")
except Exception as e:
print(f"代码运行出错: {e}")
finally:
# 确保在程序结束时关闭浏览器
if 'browser' in locals():
browser.quit()
print("浏览器已关闭。")

3. request 的demo
import requests
def fetch_url_content(url):
"""
使用 requests 库获取指定 URL 的内容。
:param url: 要获取内容的 URL
:return: 网页的文本内容,如果请求失败则返回 None
"""
try:
# 发送 GET 请求
# 添加 headers 模仿浏览器行为,避免一些网站的反爬虫机制
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'cookie':'gpw7fyLGDrN3k_tc4_mBOWuk3FZZdLGGJ-_7OJMfdcmlc5WpNn6XZ5iuCtFh-m2pfqXvR5X0bzaR5qW_I3TvbWmtQhhrexnw2JXXOqdJ'
}
response = requests.get(url, headers=headers, timeout=10)
# 检查请求是否成功 (状态码 200)
response.raise_for_status()
# 处理编码,避免乱码
response.encoding = response.apparent_encoding
# 返回网页内容
return response.text
except requests.exceptions.RequestException as e:
# 捕获可能发生的网络错误 (如连接超时、DNS错误等)
print(f"请求出错: {e}")
return None
if __name__ == "__main__":
target_url = "https://www.cnblogs.com/liqi77gg/p/19106820"
content = fetch_url_content(target_url)
if content:
# 为了避免输出内容过长,这里只打印前 500 个字符作为示例
print(f"成功获取URL内容 (前500个字符):\n\n{content[:500]}")
# 如果需要查看所有内容,可以直接 print(content)
效果:

浙公网安备 33010602011771号