爬虫博客园实例

本文介绍如何使用Python的urllib3库下载网页并解析HTML,提取class为titlelnk的标签中的链接和标题,以爬取博客园首页的博客列表。
摘要由CSDN通过智能技术生成

# pip install i https://pypi.tuna.tsinghua.edu.cn/simple some-package
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple urllib3
from urllib3 import *
from re import *

http = PoolManager()
# 禁止显示警告信息
disable_warnings()
# 下载url对应的web页面

def download(url):
    result = http.request('GET', url)
    # 获取web页面对应的html代码
    htmlStr = result.data.decode('utf-8')
    return htmlStr

# 分析 HTML 代码
def analyse(htmlStr):
    # 通过正则表达式获取所有class属性值为titlelnk 的<a> 节点
    aList = findall('<a[^>]*titlelnk[^>]*>[^<]*</a>', htmlStr)
    result = []
    # 提取每一个<a>节点中的URL
    for a in aList:
        # 利用正则表达式提取<a>节点中的URL
        g = search('href[\s]*=[\s]*[\'"]([^>\'""]*)[\'"]',a)
        if g != None:
            url = g.group(1)
        # 通过查找的方式提取<a> 节点中博客的标题
        index1 = a.find(">")
        index2 = a.rfind("<")
        # 获取博客标题
        title = a[index1 + 1:index2]
        d = {}
        d['url'] = url
        d['title'] = title
        result.append(d)
    # 返回一个包含博客标题和URL的对象
    return result

# 抓取博客列表
def crawler(url):
    html = download(url)
    blogList = analyse(html)
    # 输出博客园首页的所有博客的标题和URL
    for blog in blogList:
        print("title:", blog["title"])
        print("url:",blog["url"])

# 开始抓取博客列表
crawler('https://www.cnblogs.com')

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值