python爬虫 - 爬取html格式数据(CDSN博客)
import requests
from bs4 import BeautifulSoup
def get_html(url):
"""
获取网页的HTML内容
:param url: 网页的URL
:return: HTML内容
"""
try:
response = requests.get(url)
if response.status_code == 200:
return response.text
else:
return None
except requests.RequestException:
return None
def parse_html(html):
"""
解析HTML内容,提取博客标题和链接
:param html: HTML内容
:return: 博客标题和链接的字典
"""
soup = BeautifulSoup(html, 'html.parser')
articles = soup.find_all('article', class_='post')
blogs = []
for article in articles:
blog = {
'title': article.h2.a.text.strip(),
'link': article.h2.a['href']
}
blogs.append(blog)
return blogs
def save_to_file(blogs, file_path):
"""
将博客数据保存到文件
:param blogs: 博客数据列表
:param file_path: 文件路径
:return: None
"""
with open(file_path, 'w', encoding='utf-8') as file:
for blog in blogs:
file.write(f"标题: {blog['title']}, 链接: {blog['link']}\n")
def main():
url = 'https://blog.csdn.net/weixin_43941079'
html = get_html(url)
if html:
blogs = parse_html(html)
save_to_file(blogs, 'csdn_blogs.txt')
print("爬取成功,结果已保存到 csdn_blogs.txt 文件。")
else:
print("网页获取失败。")
if __name__ == '__main__':
main()
这段代码实现了从CDSN博客主页获取博客列表的功能,并将结果保存到文本文件中。代码中定义了获取HTML内容、解析HTML和保存数据到文件的函数,并在main
函数中调用它们。使用了requests
库来获取网页内容,BeautifulSoup
来解析HTML,以及Python的文件操作来保存数据。
评论已关闭