python爬取博主所有文章并保存到本地

本文讲述了作者使用Python爬虫技术,爬取并保存个人博客所有文章的过程。首先介绍了爬虫的背景和思路,接着详细说明了如何获取文章URL、标题及正文,最后展示了程序的实现效果和部分关键函数的代码。文章还提供了参考资料链接。
摘要由CSDN通过智能技术生成

闲话:

一位前辈告诉我大学期间要好好维护自己的博客,在博客园发布很好,但是自己最好也保留一个备份。

正好最近在学习python,刚刚从py2转到py3,还有点不是很习惯,正想着多练习,于是萌生了这个想法——用爬虫保存自己的所有文章

在查了一些资料后,慢慢的有了思路。

正文:

有了上面的思路后,编程就不是问题了,就像师傅说的,任何语言,语法只是很小的一部分,主要还是编程思想。于是边看语法,边写程序,照葫芦画瓢,也算实现了既定的功能:

1、现在py文件同目录下创建一个以博主名字为名的文件夹,用来存放爬取的所有文章。

2、暂时先保存成TXT文件,这个比较容易。但是缺点是无法保存图片。后面在学习直接转成PDF。

3、爬取完成后提醒我你爬取了多少片文章。

要懒就懒到位,最好不要让我动一下手就自动爬取所有文章,但是。。。。还是要看一下自己的文章目录的url吧、看一下自己有多少页目录吧,然后这两个参数填进去之后,就完美了。

提示:使用chrome浏览器,在chrome下:先按F12进入开发者模式,在网页上右键选中一块区域,然后选择【检查】,在右侧即可查看对应的HTML程序

主要函数的实现:

1、获取所有文章的url:

复制代码
def get_urls(url,pages):
    """
    获取所有目录下的所有文章url
    :param url: 某一页目录的url,去掉最后的数字
    :param pages: 一共需要爬取的页数
    :return: 返回所有文章url的列表
    """
    total_urls = []

    for i in range(1,pages+1):      #根据一个目录的url找到所有目录

        url_temp = url + str(i)

        html = get_html(url_temp)   #获取网页源码

        title_pattern = re.compile(r'<a.*?class="postTitle2".*?href="(.*?)">',re.S)    #文章url正则表达式

        url_temp2 = re.findall(title_pattern,html)     #找到一个目录中所有文章的网址

        
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中,可以使用多种方式来爬取网页上的图片并将其保存到本地。通常,这个过程会涉及以下几个步骤: 1. 使用requests库获取网页内容。 2. 解析网页内容,找到图片的URL。 3. 再次使用requests库下载图片。 4. 将下载的图片保存到本地文件系统。 以下是一个简单的示例代码,演示了如何实现这个过程: ```python import requests from bs4 import BeautifulSoup # 定义保存图片的函数 def save_image(image_url, local_path): response = requests.get(image_url) if response.status_code == 200: with open(local_path, 'wb') as f: f.write(response.content) print(f"图片已保存到:{local_path}") else: print("图片下载失败") # 目标网页URL url = 'http://example.com/' # 发送HTTP请求获取网页内容 response = requests.get(url) # 使用BeautifulSoup解析HTML soup = BeautifulSoup(response.text, 'html.parser') # 查找所有图片标签 images = soup.find_all('img') # 定义图片保存的本地路径前缀 local_folder = 'downloaded_images/' # 遍历所有图片标签 for img in images: # 获取图片的URL img_url = img.get('src') # 如果图片URL是完整的URL,则直接使用;否则,拼接完整路径 if not img_url.startswith('http'): img_url = url + img_url # 定义图片的本地保存路径 img_name = local_folder + img_url.split('/')[-1] # 调用保存图片的函数 save_image(img_url, img_name) ``` 这段代码首先定义了一个`save_image`函数,用于下载图片并保存到本地。然后通过requests库获取网页内容,并用BeautifulSoup解析HTML内容,找到所有图片标签并提取出图片的URL。最后,将每个图片下载并保存到本地路径。 注意,这只是一个基础示例,实际应用中可能需要处理更多的异常情况,比如网络请求失败、图片URL不完整或无法访问等。此外,还需要确保遵守网站的robots.txt规则和版权法律,不要非法爬取和使用网络资源。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值