爬虫基础-信息提取

import os  
import requests  
  
folder_path = r'E:\test'  
file_path = os.path.join(folder_path, 'guoli.txt')  
  
# 如果文件夹不存在,则创建它  
if not os.path.exists(folder_path):  
    os.makedirs(folder_path)  
  
r = requests.get('https://www.baidu.com')  
r.encoding = 'utf-8'  
  
if r.status_code == 200:  
    with open(file_path, 'a', encoding='utf-8') as file:  
        file.write("重新写入:\n")  
        file.write(r.text)  
    print("内容已成功保存到E:\\test\\guoli.txt文件中。")  # 注意:这里使用了双反斜杠来转义  
else:  
    print(f"请求失败,状态码:{r.status_code}")

上面的Python代码片段执行了以下功能:

  1. 导入必要的库:
  • os:用于与操作系统交互,比如检查文件或文件夹是否存在,以及创建文件夹。
  • requests:用于发送HTTP请求,这里用来获取网页内容。
  1. 设置文件夹和文件路径:
  • folder_path:指定了一个文件夹路径(E:\test),这是你想要保存文件的位置。
  • file_path:使用os.path.join函数将folder_path和文件名(guoli.txt)结合起来,形成完整的文件路径。
  1. 检查并创建文件夹:
  • 使用os.path.exists(folder_path)检查folder_path指定的文件夹是否存在。
  • 如果文件夹不存在,则使用os.makedirs(folder_path)创建它。注意,makedirs会创建所有必要的父文件夹。
  1. 发送HTTP GET请求:
  • 使用requests.get('https://www.baidu.com')发送一个GET请求到百度网站。
  • 设置响应的编码为utf-8,以确保能够正确解码返回的文本内容。
  1. 处理HTTP响应:
  • 检查响应的状态码是否为200(表示请求成功)。
  • 如果状态码为200,则以追加模式('a')打开file_path指定的文件。如果文件不存在,将创建它。
  • 向文件中写入一行文本("重新写入:\n"),然后写入HTTP响应的文本内容(r.text)。
  • 打印一条消息到控制台,表示内容已成功保存到文件中。
  1. 处理请求失败的情况:
    如果HTTP响应的状态码不是200,则打印一条消息到控制台,显示请求失败和相应的状态码。

获取B站的网页信息

User-Agent需要修改成自己电脑的信息

import requests  
  
url = 'https://www.bilibili.com'  
  
headers = {  
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'  
}  

r = requests.get(url, headers=headers)  

if r.status_code == 200:  
    with open('bilibili_content.txt', 'w', encoding='utf-8') as file:  
        file.write(r.text)  
    print("内容已成功保存到bilibili_content.txt文件中。")  
else:  
    print(f"请求失败,状态码:{r.status_code}")

爬虫下载百度百科秒懂视频

import os  
import requests  
  
# 视频的URL(这应该是一个指向视频文件的直接链接)  
video_url = 'https://baikevideo.cdn.bcebos.com/media/mda-XZHGU7ehu4iIlSTE/d9ee527a7e7a74bca43883c15ca6df8c.mp4'  
  
# 你想要保存视频的文件夹路径  
folder_path = r'E:\test'  
  
# 如果文件夹不存在,则创建它  
if not os.path.exists(folder_path):  
    os.makedirs(folder_path)  
  
# 视频文件在本地保存的路径  
video_file_path = os.path.join(folder_path, 'downloaded_video.mp4')  
  
# 发送HTTP GET请求来下载视频  
try:  
    with requests.get(video_url, stream=True) as r:  
        # 检查请求是否成功  
        if r.status_code == 200:  
            # 以二进制模式打开文件准备写入  
            with open(video_file_path, 'wb') as f:  
                # 以1MB的块大小读取视频数据并写入文件  
                for chunk in r.iter_content(chunk_size=1024*1024):  
                    if chunk:  # 过滤掉空块(可能是keep-alive造成的)  
                        f.write(chunk)  
            print(f"视频已成功保存到{video_file_path}")  
        else:  
            print(f"请求失败,状态码:{r.status_code}")  
except requests.RequestException as e:  
    # 捕获并处理任何请求异常  
    print(f"请求发生错误:{e}")

爬取网页文字

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化浏览器驱动(这里使用Chrome)
driver = webdriver.Chrome()

# 打开目标网址
driver.get("https://blog.csdn.net/qq_61141142/article/details/134117295")

# 等待页面加载完成(可根据实际情况调整)
driver.implicitly_wait(10)

# 提取页面标题文本
title_text = driver.title

print(title_text)

# 提取所有段落文本
paragraphs_text = [p.text for p in driver.find_elements(By.TAG_NAME, 'p')]

print(paragraphs_text)

# 关闭浏览器驱动
driver.quit()
from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化浏览器驱动(这里使用Chrome)
driver = webdriver.Chrome()

# 打开目标网址
driver.get("https://blog.csdn.net/qq_61141142/article/details/134117295")

# 等待页面加载完成(可根据实际情况调整)
driver.implicitly_wait(10)

# 提取页面标题文本
title_text = driver.title

print("页面标题:", title_text)

# 提取所有段落文本并按格式输出
paragraphs_text = [p.text for p in driver.find_elements(By.TAG_NAME, 'p')]

print("\n段落文本:")
for i, paragraph in enumerate(paragraphs_text, start=1):
    print(f"段落{i}: {paragraph}")

# 关闭浏览器驱动
driver.quit()

posted @ 2024-07-04 11:00  果粒就要果粒多  阅读(4)  评论(0编辑  收藏  举报