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