爬取博客文章列表

导读:本篇文章讲解 爬取博客文章列表,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目标:爬取博客园首页的文章标题和URL

1,打开博客园https://www.cnblogs.com/,“检查”网页元素,定位到博客文章位置:
在这里插入图片描述
2,文章标题与URL都在class值为”post-item-title”的a标签中,可以用正则表达式过滤:

from urllib3 import *
from re import *

http = PoolManager()    #使用连接池,加快响应速度。
disable_warnings()      #禁用urllib3的https安全警告


def download(url):
    result = http.request('GET', url)
    htmlStr = result.data.decode('utf-8')
    return htmlStr


def analyse(htmlStr):
    aList = findall('<a[^>]*post-item-title[^>]*>[^<]*</a>', htmlStr)       #正则过滤指定的<a>标签
    result = []
    for a in aList:
        g = search('href[\s]*=[\s]*[\'"]([^>\'""]*)[\'"]', a)   #从标签中获取URL
        if g != None:
            url = g.group(1)
        index1 = a.find(">")
        index2 = a.rfind("<")
        title = a[index1 + 1:index2]    #URL裁剪
        d = {}
        d['url'] = url
        d['title'] = title
        result.append(d)
    return result


def crawler(url):
    html = download(url)
    blogList = analyse(html)
    for blog in blogList:
        print("title:", blog["title"])
        print("url:", blog["url"])


crawler('https://www.cnblogs.com')
  • 网页请求:urllib3库
  • 页面解析:正则表达式

3,运行:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/98162.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!