python爬虫百行代码爬《励志一生》网站,破解BeautifulSoup乱码办法

Python数据分析实战:构建泡泡玛特热搜评论可视化平台 数据分析的核心能力在于从原始数据中提炼业务洞察,而Python生态为此提供了完整的技术链路。本文从数据采集、清洗、情感分析到可视化看板的通用流程切入,介绍如何利用requests、pandas、jieba、SnowNLP和PyECharts等工具,搭建一个针对品牌热搜评论的轻量级分析平台。通过真实场景演示,读者可以理解文本分词、情感分值计算、高频词统计等基础原理,并将其应用于舆情监控、用户研究、课程设计等场景。文章以泡泡玛特热搜评论为例,展示了从抓取公开数据到输出API接口的工程化实践,帮助数据分析入门者掌 阅读详情

励志一生网站的数据,新手比较难爬,特别是列表页的页码获取比较艰难,这里使用了正则表达式,内容的获取使用了BeautifulSoup库,并且在爬内容的时候出现了乱码,已完美解决!
本文声明:仅用于爬虫学习,请勿商业和恶意攻击网站,本文解释权归作者所有。

from bs4 import BeautifulSoup
import requests
import os
import re
# 设置url
url = "https://www.lz13.cn/"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
    'Referer':'https://www.lz13.cn/'
}
# 请求页面数据
response = requests.get(url=url,headers=headers)
page_text =response.content
soup =BeautifulSoup(page_text,"lxml",exclude_encodings="utf-8")
# 获取所有“更多”按钮的跳转连接
more_list = soup.select(".more")
#移除第一个不符合的元素
more_list.pop(0)

# 进入列表页面
def get_strive_list(strive_url):
    strive_list_content = requests.get(url=strive_url,headers=headers).content
    # 这里获取到的strive_list_content,是网站内容,是乱码,所以我是用content字节获取
    soup = BeautifulSoup(strive_list_content,"lxml",exclude_encodings="utf-8")
    # 然后使用BS的参数exclude_encodings="utf-8"转码,可以完美解决文字乱码问题
    strive_list = soup.select(".PostHead>span>h3>a")
    title = soup.select(".lz13Title>h2")
    for t in title:
        title_name = t.text
    for s in strive_list:
        # 拿到标题          死撑,不是坚持的唯一打开方式
        strive_title = s.text
        # 拿到标题对应的url    https://www.lz13.cn/lizhiwenzhang/184195.html
        strive_list_url = s["href"]
        # 调用list对应的详情页  返回详情页内容
        content = get_strive_detail(strive_list_url)
    # 上面是第一页列表,执行完循环就没他什么事儿了

        # 判断目录是否存在
        file_path = "./励志人生/%s/"%title_name
        if not os.path.exists(file_path):
            os.mkdir(file_path)
        try:
            file_name = file_path + strive_title + ".txt"
            with open(file_name,"w",encoding="utf-8") as f:
                f.write(content)
            print("%s的首页,%s下载完成"%(title_name,strive_title))
        except OSError:
            continue
    print("----------------------------------------------首页下载完成")
    #下面是获取总页数
    # 获取下一页的链接,如图有下一页就递归自己,没有下一页就进入下一个for循环
    next_url_list = soup.select(".pager a")
    next_url_list.pop(0)
    next_url_list.pop(-1)
    # 去掉第一页和跳到最后一页的按钮链接   <a href="https://www.lz13.cn/lizhi/lizhiwenzhang-75.html">2</a>
    for n in next_url_list:
        num_url = n["href"]                             # https://www.lz13.cn/lizhi/lizhiwenzhang-75.html
        num = re.findall(".*?-(\d+)\..*?",num_url)      #  ['75']
        # a_url = re.sub("(\d+)",str(70),num_url)       #https://www.lz70.cn/lizhi/lizhiwenzhang-70.html
        for next in range(int(num[0]),0,-1):
            next_nrl = re.sub("-(\d+)","-" + str(next),num_url)         #正则不加 -,会把主路由的13页给替换了
            # 从第二页开始 重新搞列表页
            strive_list_content = requests.get(url=next_nrl, headers=headers).content
            soup = BeautifulSoup(strive_list_content, "lxml", exclude_encodings="utf-8")
            strive_list = soup.select(".PostHead>span>h3>a")
            for s in strive_list:
                # 拿到标题          死撑,不是坚持的唯一打开方式
                strive_title = s.text
                # 拿到标题对应的url    https://www.lz13.cn/lizhiwenzhang/184195.html
                strive_list_url = s["href"]
                # 调用list对应的详情页  返回详情页内容
                if str(strive_title).endswith("?") or str(strive_title).endswith("?"):
                    strive_title = str(strive_title)[:-1]
                elif str(strive_title).find('\"'):
                    strive_title = str(strive_title).replace('\"','')
                # 因为列表中的很多名字含有英文标点符号不能用于文件名,所以使用了Python错误处理
                try:
                    file_name = file_path + strive_title + ".txt"
                    with open(file_name, "w", encoding="utf-8") as f:
                        f.write(content)
                    print("%s,第-%s页,%s下载完成"%(title_name,next,strive_title))
                except OSError:
                    continue
        # 外面循环是为了拿总页数,所以只执行一遍就退出循环
        break
# 进入详情页面
def get_strive_detail(strive_list_url):
    strive_detail_content = requests.get(url=strive_list_url,headers=headers).content
    soup = BeautifulSoup(strive_detail_content,"lxml",exclude_encodings="utf-8")
    strive_detail_text_list = soup.select(".PostContent p")
    # print(strive_detail_text_list)
    content = ""
    for c in strive_detail_text_list:
        content = content + c.text + "\n"
    return content

# 循环出每个链接
for i in more_list:
    more_url = i["href"]
    # print(more_url)
    # strive 努力,奋斗,争取   美 [straɪv]
    get_strive_list(more_url)







多种方式爬取猫眼电影TOP100 最近开始学习爬虫,用的是崔庆才老师的教程,其中第一个实战就是爬取猫眼电影的TOP100,使用的是requests+re。但我觉得re有点复杂,于是探索了一下用其他解析库来爬取。 爬取思路: 首先我要爬取的网站为:https://maoyan.com/board/4?offset=,当翻到第二时网址变成了https://maoyan.com/board/4?offset=10,第三页网址时变成了ht... 阅读详情

相关推荐

Python网络爬虫实战:抓取猫眼TOP100电影信息

本文还有配套的精品资源,点击获取 简介:在Python中,Web爬虫是获取互联网数据的关键技能。本教程将指导如何结合使用requests库和正则表达式来从猫眼电影网站的TOP100榜单中抓取电影信息。首先通过requests库发送HTTP请求获取网页内容,然后运用正则表达式提取电影名和评分等信息。在进行网络爬虫时,遵守robots.txt规则,设置请求延时,并考虑处理网站的...

weixin_42515392的博客 2608

python爬虫实战-爬取励志名言并保存至本地(正则)

python爬虫实战-爬取励志名言并保存至本地(正则) import urllib.parse import urllib.request import re def handle_request(url,page=None): if page !=None: url=url+str(page)+'.html' headers={ 'User-Agent':'Mozilla/5.0 ...

hoochon的博客 901

猫眼电影榜单python.py

用python做的猫眼电影排行榜榜单11

Python爬虫过程 爬取www.yikexun.cn/励志句子过程(双请求)

学了大概4、5天的爬虫终于能爬点图片和文章了 其实这两个差不多,后面一个稍微复杂一点 这次来讲解一下怎么爬取标题的这个网址 要做的是爬取这些文章,我们输入起始页码和结束页码,爬取页码之间的每篇文章 我们现在看到的是标题,标题点进去之后才是我们要的文章,我们要把每篇文章写进一个html文件里 需求就是这样,开工! 首先我们看看url和页码有什么关系 很明显就是后面的50_n.html就是决定页...

weixin_41607190的博客 709

C语言和励志

很励志很好用的 可以帮助到大家 也下节课

BLDC方波控制 vs. FOC:技术选型指南与未来演进

本文深入对比BLDC电机方波控制与FOC技术的核心差异,分析两者在成本、性能和应用场景上的权衡。方波控制凭借低成本和易实现性,在电动工具和家电领域优势明显;而FOC则以平滑高效控制见长,适用于高端精密应用。文章为工程师提供了实用的技术选型指南,并展望了未来技术融合的发展趋势。

yhn4567890的博客 1171

一段感动程序员的代码

刷leetcode,刷着刷着突然被感动哭了,不仅仅学到了知识,也学到了哲学

edui的博客 1068

【具身算法】VLA算法-Diffusion Policy

《扩散策略:多模态机器人控制的新方法》摘要 本文提出了一种基于扩散模型的机器人控制策略(DiffusionPolicy),用于解决视觉运动控制中的多模态行为、高维动作空间和训练稳定性问题。该方法利用去噪扩散概率模型(DDPM)生成动作序列,通过迭代优化处理复杂动作分布,显著提升了性能。实验表明,在15项机器人操作任务中,扩散策略平均性能提升46.9%,有效解决了传统显式/隐式策略的局限性。其核心优势在于:1)优雅建模多模态动作分布;2)适应高维动作空间;3)训练过程稳定。未来工作将探索与强化学习的结合及计算

puzhinan7781的博客 1389

天天向上实例的 java-code

package test2_10; /* * 天天向上实例 */ import java.util.Scanner; public class Test2_10 { public static void main(String[] args) { //提示用户输入向上的天数和进步程度 System.out.println("请输入向上的天数>"); Scanner sc = new Scanner(System.in); int upday = sc.nextInt(); .

qq_58907762的博客 705

OpenWRT软件源更换保姆级教程:从国内镜像到官方源一键切换(含常见报错解决)

本文提供OpenWRT软件源更换的详细教程,涵盖从国内镜像源到官方源的切换方法,并深度解析常见报错解决方案。针对国内网络环境,指导用户如何精准定位系统信息、备份配置、选择并配置清华等国内镜像源,以及处理签名验证失败、依赖缺失、404错误等典型问题,旨在提升软件包管理效率与稳定性。

weixin_29229261的博客 1931

Creo报许可证错误License request failed for feature的解决方案

有些朋友用了一段时间打开creo软件,出现icense request failed for feature”错误,这个是Creo许可证出现了问题,一般是许可证文件无效或是已过期,导致Creo软件通信出现故障,就会出现Creo License request failed for feature, Requsesting CreoPMA_SSQ ,Run ptcstatus.bat server status。第三步:键盘按win+R,在运行窗口里输入:cmd,然后点确定。第八步:点击系统,找到系统信息。

Q82556499的博客 3万+

程序员励志语录

#include<iostream> using namespace std; int main() { int i; int b[]={32,32,206,210,207,178,187,182,196,227,33,32,32}; for(i=0;i<13;i++) { // 每两个ASCLL码组成一个汉字,其中32,32为两个空格(相当于一个汉字,2个字节);206,210组成'.

京京子小姐的博客 583

手把手教你学Simulink——四开关 Buck‑Boost(FSBB)变换器的无缝模式切换仿真

本文详细介绍了四开关Buck-Boost(FSBB)变换器的Simulink仿真方法,重点解决模式切换时的直通风险和输出电压波动问题。通过统一电压PI控制、迟滞比较模式仲裁(Buck/Boost/Pass-Through)和200ns死区设计,实现了Vin从26V到22V变化时Vout稳定在12V±0.15V。关键步骤包括:搭建功率级电路、Stateflow模式判断、PI控制器输出占空比映射(Buck模式D≈Vo/Vin,Boost模式D≈1-Vo/Vin),以及带死区的PWM信号分配。仿真验证了切换过程中

MHD0815的博客 114

Python爬虫从0到1:一份面向完全初学者的指南

日常工作和学习中,我们经常需要批量获取网页公开数据:电影评分、商品价格、诗词文案、天气信息等,手动复制粘贴效率极低。而Python爬虫可以自动化完成网页数据抓取,几分钟就能完成人工几小时的工作量。本文从零讲解爬虫核心原理、必备库使用、完整实战项目、常见报错解决,同时重点科普爬虫法律红线,带你安全、合规地学会爬虫开发。

Monologue_7的博客 1136

Google Play上架:谷歌2024年5月份审核政策改动,审核强度逐步提升

Google Play上架:谷歌2024年5月份审核政策改动,审核强度逐步提升

专业解决各种上架过包问题,专业团队专业处理 3187

SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇) 第一篇:需求梳理与架构设计:从零搭建SAP主数据校验能力底座

摘要: 本系列博客介绍SAP主数据校验工具的开发和设计,旨在解决物料、供应商、客户等主数据录入不规范、关联缺失和合规性问题。第一篇聚焦需求梳理与架构设计,提出分层技术架构(展示层、业务逻辑层、数据访问层),支持实时校验和批量校验两种模式,并详细说明规则引擎设计、SAP系统对接方案及权限管控逻辑。后续篇章将深入规则引擎实现、接口对接、结果可视化和性能优化,帮助构建集中式、可配置的主数据校验能力,提升SAP数据质量。

baidu_35680696的博客 330

Python开发_励志小公式分享

1、日积硅步以致千里,日积怠惰以致深渊 ```cpp 公式: 1.01^365=37.78343433288728 0.99^365=0.025517964452291125 代码: >>> 1.01**365 37.78343433288728 >>> 0.99**365 0.025517964452291125 >>> ``` 2、只比你努力一点点,其实已经甩你很远 ```cpp 公式: 1.02^365=1377.4082919660768 0.98^365=00.000627361159692

lkr 684

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

励志的表白代码

#undef UNICODE #undef _UNICODE #include “graphics.h”//c++图形界面库 #include “stdio.h” #include “time.h” #include “mmsystem.h”//多媒体音频接口 #include"windows.h" #pragma comment(lib,“winmm.lib”) struct Point { i...

m0_45217466的博客 1111

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

爬虫基础之爬取猫眼Top100 可视化

将数据存储在字典中 在外面定义一个空列表 最后将字典添加到列表中。至于如何查看 数据的一些信息 语法就不在这里介绍了 可以看之前的文章。

一名热爱编程的热血青年 2228

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python爬虫基础案例——爬取猫眼电影并保存数据到excel

好久没更新博文了,最近忙于学习scrapy框架和微信小程序开发,今天看到一个自己之前写的但是中途放弃的爬虫小案例——爬取猫眼电影TOP100榜的相关数据,现在将它写好并分享给大家。 爬虫的套路就是通过url发送请求,获取数据,在解析数据,最后保存数据。 一、模块 根据套路,选择好要使用的模块/库,这里用的模块/库是 import requests from lxml import etree import pandas as pd 二、正文 1.比较url,比较url变化规律,从而得到base

knighthood2001 1万+

程序员励志名言

  1、作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。  2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。  3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。  4、程序不是年轻的专利,但是,他属于年轻。  5、没有情调,不懂浪漫,也许这是程序员的一面,但拥...

weixin_34380948的博客 664

如何爬取猫眼全部信息(电影信息、演员信息)

爬取猫眼的全部信息,这里主要指的是电影列表里的电影信息和演员信息,如下界面。 爬去的时候有两个难点。一:字体加密(如今好像机制有更新来些,用网上的方法不行);二:美团检测。下面将分别讲述我解决的过程。 一、字体加密 关于字体加密,网络上介绍的很多,思路也都类似。猫眼每次加载的时候会动态的加载不同的字形编码。解决思路呢,就是先下载好它的一个字体文件(.woff结尾的,方法网上...

我要出家当道士 4590

Python爬虫实战案例一:爬取猫眼电影

笔者上一篇文章《基于猫眼票房数据的可视化分析》中爬取了猫眼实时票房数据,用于展示近三年电影票房概况。由于数据中缺少导演/演员/编剧阵容等信息,所以爬取猫眼电影数据进行补充。关于爬虫的教学内容,网络上一搜就有很多了,这里我以个人的爬虫习惯,介绍此次过程中所用到的库和代码。

2201_75362610的博客 4507

html 设置流星效果,如何使用html实现流星雨的效果(代码)

本篇文章给大家带来的内容是关于如何使用html实现流星雨的效果(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。流星雨body {margin: 0;overflow: hidden;}//获取画板//doccument 当前文档//getElement 获取一个标签//ById 通过Id名称的方式//var 声明一片空间//var canvas 声明一片空间的名字叫做can...

weixin_30199299的博客 4419

Python爬取新版猫眼Top100电影系列数据,并保存到csv文件(1)

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2401_83621499的博客 878
上一篇: python爬虫lxml解析爬取诗词名句
下一篇: python爬虫80行代码拿下喜马拉雅有声书
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值