python简单爬虫爬取博客网链接和标题

import requests
from bs4 import BeautifulSoup

urls = [f'https://www.cnblogs.com/#p{i}' for i in range(1,51)]

def craw(url):
    r = requests.get(url)
    return  r.text

def parse(html):
    soup = BeautifulSoup(html,"html.parser")
    links = soup.find_all("a",class_="post-item-title")
    return [(link['href'],link.get_text()) for link in links]

if __name__ == '__main__':
    for result in parse(craw(urls[2])):
        print(result)

这段代码是一个简单的网络爬虫,主要目的是从博客园网站(https://www.cnblogs.com)的页面中抓取博客标题和对应的链接。以下是对代码的详细分析:

1. URL 构造

urls = [f'https://www.cnblogs.com/#p{i}' for i in range(1, 51)]

使用列表推导式生成了一个包含 1 至 50 页博客列表的 URL。

每个 URL 的格式为 https://www.cnblogs.com/#p{i},如

        第 1 页:https://www.cnblogs.com/#p1

        第 2 页:https://www.cnblogs.com/#p2

        ...

        第 50 页:https://www.cnblogs.com/#p50

2. 爬取网页内容:craw 函数

def craw(url):
    r = requests.get(url)
    return r.text

接收一个 URL,使用 requests.get 向服务器发送 HTTP GET 请求。 返回值是网页的 HTML 内容(字符串形式)。

3. 解析 HTML 内容:parse 函数

def parse(html):
    soup = BeautifulSoup(html, "html.parser")
    links = soup.find_all("a", class_="post-item-title")
    return [(link['href'], link.get_text()) for link in links]

输入:接收 HTML 内容。

功能: 使用 BeautifulSoup 将 HTML 字符串解析为可操作的 DOM 对象。 查找所有 <a> 标签,且 class 属性为 post-item-title。 从每个符合条件的 <a> 标签中提取 href和链接文本。

输出:返回一个包含链接和标题的元组列表。例如:

4. 主程序

if __name__ == '__main__':
    for result in parse(craw(urls[2])):
        print(result)

从 urls[2](即第三页)开始爬取博客列表。

将 craw 获取的 HTML 内容传递给 parse,解析博客链接和标题。

将解析结果逐行打印。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值