基于Python爬取51cto博客页面信息过程解析
介绍
提到爬虫,互联网的朋友应该都不陌生,现在使用Python爬取网站数据是非常常见的手段,好多朋友都是爬取豆瓣信息为案例,我不想重复,就使用了爬取51cto博客网站信息为案例,这里以我的博客页面为教程,编写的Python代码!
实验环境
1.安装Python3.7
2.安装requests,bs4模块
实验步骤
1.安装Python3.7环境
2.安装requests,bs4模块
打开cmd,输入:pipinstallrequests-ihttps://pypi.tuna.tsinghua.edu.cn/simple/
再安装bs4,输入:pipinstallbs4-ihttps://pypi.tuna.tsinghua.edu.cn/simple/
安装后面加上-ihttps://pypi.tuna.tsinghua.edu.cn/simple/表示从清华镜像下载模块,速度会提高好多!
3.编写代码
#爬取51cto博客页面 importrequests importbs4 importre defopen_url(url): #使用代理 #proxies={"http":"127.0.0.1:1080","https":"127.0.0.1:1080"} headers={ 'user-agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)' 'Chrome/57.0.2987.98Safari/537.36'} #res=requests.get(url,headers=headers,proxies=proxies) res=requests.get(url,headers=headers) returnres deffind_titles(res): soup=bs4.BeautifulSoup(res.text,'html.parser') #博客名 titles=[] targets=soup.find_all("a",class_="tit") foreachintargets: titles.append(each.text.strip()) #阅读量 reads=[] read1=soup.find_all("p",class_="readflon") read2=soup.find_all("p",class_="readfl") foreachinread1: reads.append(each.text) foreachinread2: reads.append(each.text) #评论数 comment=[] targets=soup.find_all("p",class_='commentfl') foreachintargets: comment.append(each.text) #收藏 collects=[] targets=soup.find_all("p",class_='collectfl') foreachintargets: collects.append(each.text) #汇总 result=[] length=len(titles) foriinrange(length): result.append(titles[i]+'\n'+reads[i]+''+comment[i]+''+collects[i]+'\n') returnresult #找出一共有多少个页面 deffind_depth(res): soup=bs4.BeautifulSoup(res.text,'html.parser') depth=soup.find('li',class_='next').previous_sibling.previous_sibling.text returnint(depth) defmain(): host="https://blog.51cto.com/13760351" res=open_url(host) depth=find_depth(res) result=[] foriinrange(1,depth+1):#范围是1到6页 url=host+'/p'+str(i)#网页链接是后面加上/pi res=open_url(url) result.extend(find_titles(res)) #写入文本文件中 withopen("51cto博客.txt","w",encoding="utf-8")asf: foreachinresult: f.write(each) #主程序入口 if__name__=="__main__": main()
4.运行代码,查看效果
阿里云服务器安装postfix--邮箱服务(排坑过程详解)荐置顶 阅读10000+评论2收藏9 (教科书式教程!)在VMwareWorkstation14上安装CentOS7【送安装包】置顶 阅读10000+评论10收藏0 CentOS7系统YUM安装MySQL5.7 阅读136评论0收藏1 Docker安装(官方安装方法) 阅读153评论0收藏0 运维实用工具推荐 阅读159评论0收藏0 K8S部署Rancher2.X版本 阅读1068评论0收藏0 python练习题(三) 阅读260评论0收藏0 DNS--域名解析 阅读170评论0收藏0 python练习题(二) 阅读353评论0收藏0 K8S使用Dashboard部署nginx群集 阅读124评论0收藏0 CentOS7离线部署K8S群集 阅读280评论0收藏0 MySQL函数--数学函数 阅读136评论0收藏0 CentOS7安装SVN 阅读192评论2收藏0 MYSQL数据库索引 阅读178评论0收藏0 CentOS8深入优化nginx服务 阅读509评论0收藏0 CentOS7搭建nginx网页服务 阅读207评论0收藏0 Linux文本处理利器--Awk常用命令 阅读940评论0收藏0 Liunx文件的查找 阅读163评论0收藏0 Linux流编辑--Sed命令及语法 阅读178评论0收藏0 MYSQL行为 阅读110评论0收藏0 MYSQL数据库--连接查询 阅读269评论0收藏0 MYSQL数据库基本操作 阅读271评论0收藏0 Ansible常用模块 阅读119评论0收藏0 CentOS8部署自动化运维工具--Ansible 阅读358评论0收藏0 CentOS7部署百万pv项目(高可用架构) 阅读2139评论0收藏4 MYSQL查询--子查询,合并查询 阅读242评论0收藏0 MySQL伪事务和性能 阅读178评论0收藏0 MYSQL数据库--定义表和字段的别名 阅读256评论0收藏0 MYSQL查询--聚合函数查询 阅读132评论0收藏0 MYSQL查询命令--单表查询 阅读205评论0收藏0 ELK平台收集Tomcat日志记录 阅读316评论0收藏0 CentOS8部署ELK日志分析平台 阅读730评论0收藏0 Docker数据管理和网络通信 阅读246评论0收藏0 Docker镜像创建方法 阅读143评论0收藏0 Docker容器操作 阅读195评论0收藏0 Docker镜像操作 阅读143评论0收藏0 CentOS8系统图形化安装教程(超详细) 阅读4570评论0收藏0 Docker部署nginx+tomcat 阅读501评论0收藏0 Docker部署war包项目 阅读2173评论0收藏1 华为云服务器安装Docker容器 阅读901评论0收藏0 CentOS8安装docker容器 阅读4848评论0收藏0 解决confluence和jira数据包问题 阅读225评论0收藏0 CentOS7.6搭建Gitlab教程 阅读234评论0收藏0 confluence配置邮件服务器 阅读516评论0收藏0 Shell脚本实现tomcat日志定时切割 阅读263评论0收藏0 阿里云服务器Centos7配置465端口号发送邮件 阅读774评论0收藏0 MQTT限制匿名用户访问,开启用户密码认证 阅读640评论0收藏0 CentOS7.6部署Redis数据库 阅读150评论0收藏0 CentOS7.6破解安装Confluence和Jira(送安装包和破解工具) 阅读5800评论0收藏0 Centos7安装MQTT(EMQ)服务端 阅读943评论0收藏0 CentOS7实现yum安装最新php版本 阅读2527评论0收藏0 Python3对文件操作 阅读886评论0收藏0 Python3操作Mysql数据库 阅读820评论0收藏1 Selenium定位元素的8种方法介绍 阅读1536评论0收藏0 PythonSelenium自动配置zabbix邮箱报警功能 阅读568评论0收藏0 Zabbix配置QQ邮箱报警通知 阅读2043评论0收藏0 CentOS7系统搭建私服仓库Nexus 阅读664评论0收藏1 解决CentOS7最小化安装后无ifconfig命令 阅读687评论0收藏0 CentOS7安装禅道并绑定公司内网邮箱 阅读1161评论0收藏0 Shell脚本自动安装公司内部邮箱服务器--Postfix 阅读7066评论0收藏4 解决虚拟机在桥接模式下设置静态ip,无法上外网的各种问题 阅读10000+评论6收藏0 Shell脚本自动安装cobbler(改进+填坑) 阅读10000+评论3收藏0 Shell脚本自动安装Cobbler(知识点+踩坑点) 阅读5292评论0收藏6 CentOS7.4系统升级至7.6 阅读4738评论4收藏0 超实用技能--快速查看windowsWiFi密码 阅读4518评论0收藏0 Jenkins自动化部署安卓项目 阅读7574评论0收藏1 记一次阿里云服务器安装Python的血泪史 阅读1671评论6收藏1 Jenkins自动化部署nodejs项目(前端项目) 阅读1445评论0收藏2 Jenkins自动部署发布Java代码(完整教程) 阅读9192评论0收藏1 Jenkins自动化打包--war包 阅读9444评论2收藏3 shell搭配python自动安装zabbix监控端详解 阅读1112评论0收藏1 在CentOS7系统下升级Jenkins版本(含排坑过程) 阅读7223评论4收藏0 Window10安装python3.7+selenium(附最新安装包) 阅读2984评论0收藏0 CentOS7轻松安装Jenkins 阅读3259评论0收藏1 脚本安装Discuz论坛(shell+Python实现自动化安装) 阅读1783评论0收藏0 Shell脚本自动源码包安装LA/NMP架构详解(赠软件包+脚本) 阅读3068评论0收藏0 shell脚本一键安装Tomcat服务 阅读2192评论0赞赏1 【值得收藏!】Vi文本编辑器细讲 阅读789评论4收藏1 企业应用---部署LAMP平台+Discuz论坛【赠安装包】 阅读2032评论0收藏2 【高效装机】PXE实现无人值守安装CentOS6 阅读4144评论0收藏1 在CentOS7上安装Oracle12c【赠安装包】 阅读4776评论0收藏1 轻松部署MFS分布式文件系统【内附源码包】 阅读3049评论0收藏1 Memcached+LAMP架构安装详解【送源码包】 阅读3523评论4收藏0 部署MySQL-MMM高可用群集 阅读1123评论0收藏0 搭建MySQL读写分离(内附源码包) 阅读573评论2收藏1 Mysql数据库主从复制 阅读716评论0收藏0 mysql数据库基本命令---多条数据的同时操作 阅读999评论0收藏0 使用Haproxy搭建web群集 阅读496评论2收藏0 MySQL数据库源码包安装(5.7最新版本) 阅读568评论0收藏0 解决PXE装机报警----重复安装系统,无法进入用户登录界面 阅读1521评论0收藏0 解决PXE装系统报警问题----写入空间不足 阅读705评论0收藏0 Nginx服务语法正确,服务启动失败解决方法 阅读767评论0收藏0 CentOS7实现Nginx+Tomcat负载均衡 阅读685评论0收藏0 Nginx构建虚拟主机 阅读618评论0收藏0 Nginx服务安全优化---隐藏版本号、网页缓存、日志分割 阅读599评论0收藏0 轻松部署Tomcat服务器 阅读346评论0收藏0 Apache网页安全优化----设置防盗链和隐藏版本信息 阅读748评论0收藏0 手工编译安装Apache网站(赠送源码包) 阅读638评论0收藏1 Apache构建虚拟web主机 阅读747评论0收藏0 CentOS6yum安装Apache网站 阅读2072评论0收藏0 搭建AWStats日志分析系统(内附awstats软件包) 阅读10000+评论0收藏0 图文详解cobbler自动装机教程(内附epel源) 阅读10000+评论8收藏2 DNS分离解析教学超简单! 阅读679评论0收藏0 FTP服务最安全认证模式---虚拟账户访问 阅读4440评论0收藏0 FTP服务器--实现本地用户访问,拒绝匿名用户 阅读749评论0收藏0 快速搭建FTP服务器--实现匿名用户上传和下载 阅读1296评论2收藏0 Linux6.5服务器上搭建本地yum仓库 阅读2206评论0收藏0 【超好用】弱口令扫描工具JohntheRipper图文教程(附软件包) 阅读2669评论4收藏1 详述在Linux上挂载window共享文件夹 阅读634评论12收藏0 RedhatLinux6.5图文详细安装教程【附安装包】 阅读7550评论8收藏2
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。