美文网首页
python爬虫入门 小案例

python爬虫入门 小案例

作者: 南土酱 | 来源:发表于2021-06-01 19:20 被阅读0次

今天看到人家广告 python爬虫兼职过万,于是心血来潮的学习了一下。写个小案例打个基础吧

用到 的三个库: requests (网络请求库), os(文件操作库) , re (正则匹配库)

这个案例是我拿图书馆一本书里的例子,然后自己写的完整代码
网络库用来 获取网页源代码和内容
文件操作库 用来对内容进行保存到本地
正则匹配库 用来对内容进行解析和截取
要爬取的页面地址 :https://www.kanunu8.com/book3/6879/
本次案例是对一个小说页面进行爬取。小说比较容易,作为新手入门合适很多

内容分析:
小说页面爬取主要三个步骤:

  1. 获取各个章节的连接
  2. 具体每个章节的文本内容获取
  3. 保存内容到本地文件
    据此分为三个 函数 get_toc() get_article() save()
打开要爬取的地址可以看到各个章节,现在要获取其章节连接url
利用 正则匹配 a 标签 获取里边的 href 属性,并用 网址的根连接进行拼接即可

url = re.findall('href="(.*?)"',block,re.S)
image.png
进入章节的文字展示可以看到 文字都是存放在 p 标签里边的。
照样的匹配 p标签,顺便过滤掉 br标签就好了
最后就是 把内容 利用 os 进行保存即可
image.png
image.png
源码贴上:
如果报了编码格式的错误,请执行这段代码看看自己本机器的编码格式:
import locale
print(locale.getdefaultlocale())
如果是 cp936 就是  gbk 格式。 下边的代码 encoding 填写 gbk格式

# -*- coding: utf-8 -*-
import re
import requests
import os

start_url = 'https://www.kanunu8.com/book3/6879/'

def main():
    html = requests.get(start_url).content.decode(encoding="gbk")
    list = get_toc(html)
    for l in list:
        save(*get_article(requests.get(l).content.decode(encoding="gbk")))


def get_toc(html):
    """
    获取每一章连接,存储到一个列表中并返回
    :param html:
    :return:
    """
    urlList = []
    block = re.findall('正文(.*?)</tbody>',html,re.S)[0]
    url = re.findall('href="(.*?)"',block,re.S)
    for u in  url:
        urlList.append(start_url+u)
    return urlList

def get_article(html):
    """
    获取每一章的正文并返回章节名和正文
    :param html:
    :return:
    """
    chapter_name = re.search('size="4">(.*?)<',html,re.S).group(1)
    text_block = re.search('<p>(.*?)</p>',html,re.S).group(1)
    text_block = text_block.replace('<br />','')
    return chapter_name,text_block

def save(chapter,article):
    """
    保存内容到本地
    :param chapter:
    :param article:
    :return:
    """
    os.makedirs('动物农场',exist_ok=True)
    with open(os.path.join('动物农场',chapter + '.txt'),'w',encoding='utf-8') as  f:
        f.write(article)

main()

\color{#228B22}{python 学习小总结,不对之处,欢迎大神们喷我。可以的话顺手点个赞吧~~!}
\color{red}{警: 禁止抄袭,转载说明出处 🤨}

相关文章

网友评论

      本文标题:python爬虫入门 小案例

      本文链接:https://www.haomeiwen.com/subject/rmkgsltx.html