python爬虫测试

0.背景:要下合适自己的驱动,不然都是报错!!

 

你需要完成以下两步:

  1. 检查你的 Chrome 浏览器版本。

    • 打开 Chrome,在地址栏输入 chrome://settings/help
    • 你会看到你的 Chrome 版本号,例如 版本 120.0.6099.110
  2. 下载对应版本的 ChromeDriver

    • 访问新的官方下载地址:Chrome for Testing availability
    • 在页面上找到和你的浏览器版本号最匹配的 chromedriver,然后下载 win64 版本(如果你的系统是64位)。
    • 下载下来的是一个 zip 压缩包,解压后会得到 chromedriver.exe 文件。
  3. 在代码中指定 chromedriver.exe 的路径。
    这是最关键的一步。你需要使用 Service 对象来告诉 Selenium 

  4. 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()

image

image

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("浏览器已关闭。")

image

 

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)

效果:

image 

posted @ 2025-09-21 21:10  77gg  阅读(13)  评论(0)    收藏  举报