20231303赵泊瑄 2023-2024-2 《Python程序设计》实验4报告

20231303赵泊瑄 2023-2024-2 《Python程序设计》实验4报告

课程:《Python程序设计》
班级: 2313
姓名: 赵泊瑄
学号:20231303
实验教师:王志强
实验日期:2024年5月日
必修/选修: 公选课

1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
我的选择:编写从博客网站爬取数据,实现可视化舆情监控与数据爬取。
注:这里使用的示例博客网址为我上次实验三的个人实验报告所在网址。
原代码:


# coding=utf-8
# 20231303zbx
# 时间 : 2024/5/26

import requests
from bs4 import BeautifulSoup

# 准备url
url = "https://blog.csdn.net/2301_79466946/article/details/138092715"

# 准备相应信息  用来模拟浏览器请求
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400',
    'Cookie': '10_1716887888457.599686',
}
# 键盘接收搜索内容
content = input('搜索内容')
param = {
    'wd': content
}
# request  get请求 且携带封装参数和相应头部信息
response = requests.get(url=url, params=param, headers=headers)
# 获取响应数据的文本
page_text = response.text
# 此处打印一下看是否爬取到数据
print(page_text)
# 将对应文本写入html文件
fileName = content + '.html'
with open(fileName, 'w', encoding='utf-8') as fp:
    fp.write(page_text)
print(fileName, '保存成功')
# 读取生成的HTML文件
html_file = fileName

# 打开HTML文件并读取内容
with open(html_file, 'r', encoding='utf-8') as file:
    html_content = file.read()

# 使用Beautiful Soup解析HTML内容
soup = BeautifulSoup(html_content, 'html.parser')

# 示例:输出标题
print("标题:", soup.title.string)
print("所有的文本内容:")
for div in soup.find_all('div'):
    print(div.text.strip())

2. 实验过程及结果

(1)安装程序所需要的Python库:requests和BeautifulSoup4。
requests:用于发送发送 HTTP 请求,处理服务器的响应并且模拟浏览器行为,实现爬取数据的同时,提高爬取的成功率。
BeautifulSoup4:用于解析爬取获得的网页数据。
首先安装两个库。
requests库
在这里插入图片描述
在程序中引入两个Python库:

import requests
from bs4 import BeautifulSoup

(2)准备需要爬取数据的网站的URL:

# 准备url
url = "https://blog.csdn.net/2301_79466946/article/details/138092715"

(3)准备相应信息 用来模拟浏览器请求:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400',
    'Cookie': '10_1716887888457.599686',
}

这里选择的Cookie可以通过以下方法获取:
1.在浏览器中右键点击页面然后选择“检查”;
2.在开发者工具中,切换到“Application”(应用程序)或“Storage”(存储)选项卡;
3.展开“Cookies”部分,在这些 Cookie 中,通常会有一个名为“session”或类似名称的 Cookie,它保存了当前会话的登录状态。查看这些 Cookie 的内容,复制该 Cookie 的值,并将其作为请求中的 Cookie 值。
在这里插入图片描述
(4)接收爬取到的数据。

content = input('搜索内容')
param = {
    'wd': content
}

(5)request get请求 且携带封装参数和相应头部信息

response = requests.get(url=url, params=param, headers=headers)

(6)获取响应数据的文本,检查是否爬取成功并将对应内容写进一个html文件。

page_text = response.text
print(page_text)
fileName = content + '.html'
with open(fileName, 'w', encoding='utf-8') as fp:
    fp.write(page_text)
print(fileName, '保存成功')

(7)读取生成的html文件,打开它并读取其内容。

html_file = fileName
with open(html_file, 'r', encoding='utf-8') as file:
    html_content = file.read()

(8)使用Beautiful Soup解析HTML内容,并打印出获得的数据:

soup = BeautifulSoup(html_content, 'html.parser')
print("标题:", soup.title.string)
print("所有的文本内容:")
for div in soup.find_all('div'):
    print(div.text.strip())

运行结果

2024-05-28 17-07-15

3.实验遇到的问题及解决措施:

(1)不知道Cookie内容该选择哪个:
解决措施:通过查询相关知识,确定名为“session”或类似名称的 Cookie保存了当前会话的登录状态,应该填入。
(2)开始时爬取获得的数据过于冗杂,无法精准提炼出博客网页的关键文本信息。
解决措施:采用引入BeautifulSoup4的方式,解析HTML文件并输出相关的标题和正文信息。

4.课程感想体会:

首先,人生苦短,我用python!
相比C语言的繁复冗长,python非常简练,逻辑结构也更加清晰明了,这一点给了我非常深的感触。也让我对python 的学习有了更多的动力与兴趣。
同时,王志强老师注重实践、寓教于乐的教学方式也令我受益匪浅。在一学期的学习与实践中,python的课堂帮助我学习与掌握了很多python的基础操作与应用。
最后,哪怕一些概念和深层次的编程应用尚不熟悉,但我也会秉持着python课教导我们的“不怕不会,就怕不学”的观念,发现问题,解决问题,不断学习,不断完善知识体系,学好python,学号各种编程语言。
最后,感谢老师一学期以来的辛苦授课与辛勤付出,人生苦短,我用python!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值