资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Python

【浅谈python爬虫1】基于正则表达式的基础爬虫——爬取排行榜榜单内容

Python 更新时间: 发布时间: 计算机考试归档 最新发布

【浅谈python爬虫1】基于正则表达式的基础爬虫——爬取排行榜榜单内容

大家好,我是好学的小师弟。今天来和大家分享下,我近期工作的一个学习心得——爬虫。虽然之前也有过爬虫的学习,但是那基本上都是基于图片的爬取。这次学习心得,算是一个小小的提升吧。


主要分3讲:1.基于正则表达式的爬虫——爬取排行榜榜单内容

                    2.基于lxml库的etree方法结合xpath方法——爬取排行榜榜单内容并生成榜单词云图

                    3.基于调用接口爬取排行榜单的爬虫方法并将爬取内容保存至csv文件


基于正则表达式的爬虫——爬取排行榜榜单内容

思路:将网站内容全部打印下来,分析标签之间的共同点,通过正则表达式提取标签内容,将每一块内容(例“标题”、“作者”)都单独写好,最后进行汇总

优点:思路简洁明了

缺点:实施起来比较麻烦(要是不麻烦,我应该也不会想其他方法了,笑哭)


步骤:1.输入想要爬取内容的网页网址,构建请求头,打印页面text内容

import requests
import re
#爬取csdn   python领域排行榜
csdn_python_url='https://blog.csdn.net/nav/python'
#构建请求头
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}
python_yemian=requests.get(url=csdn_python_url,headers=headers)
python_yemian=python_yemian.text
#打印一下text内容
print(python_yemian)

2.通过观察打印出来的标签内容,构造正则表达式,获取想要的内容。

                        
                                                        记一次性能优化的心酸历程【Flask+Gunicorn+pytorch+多进程+线程池,一顿操作猛如虎】                                                    
                    

这里我们想要的就是a标签的文本内容,所以我们构造了如下这个正则表达式

rebang_name=re.findall('n(.*?)',python_yemian)

"""
可以看到这里有个n换行符号,这是因为我们的标签内容里面也有换行,所以我们要和她一致


"""

因为打印出来的热榜文章标题是列表,所以我们要把他转变为字符串。

注意:这里转变为字符串的时候,你会发现内容前后都有空格,所以我们可以用replace的方法,取消空格。

['                                                        记一次性能优化的心酸历程【Flask+Gunicorn+pytorch+多进程+线程池,一顿操作猛如虎】                                                    ', '                                                        数据可视化之美 -- 以Matlab、Python为工具                                                    ']
#列表转变为字符串

rebang_text=','.join(rebang_name)
#通过replace将空格取消
rebang_text=rebang_text.replace(' ','')
#通过split函数再将字符串转变为字符串列表
rebang_text=rebang_text.split(',')
#打印
print(rebang_text)

完整代码:

import requests
import re

csdn_python_url='https://blog.csdn.net/nav/python'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}
python_yemian=requests.get(url=csdn_python_url,headers=headers)
python_yemian=python_yemian.text
rebang_name=re.findall('n(.*?)',python_yemian)
print(python_yemian)
print(rebang_name)
rebang_text=','.join(rebang_name)
rebang_text=rebang_text.replace(' ','')
rebang_text=rebang_text.split(',')
print(rebang_text)

效果图:

['记一次性能优化的心酸历程【Flask+Gunicorn+pytorch+多进程+线程池,一顿操作猛如虎】', '数据可视化之美--以Matlab、Python为工具', '【三万粉丝终极福利】Python、C、Java三大语言学习路线和资源整理', '我,27岁,程序员,10月无情被辞:想给学python的人提个醒......', '用python实现自动扫雷', '将python项目打包成exe和安装包', '秀的一批,那些你不得不知的Python杀手级框架', 'Python自动化必会技能-Excel文件读取', '【渗透测试自学系列】——邮件协议是如何被安全人员利用的?', '每日一算法(22)', '如何将照片或者视频中的背景图抠掉,机器学习开源项目使用|机器学习', '捋一捋Python中的List(下)', 'Pygame实战:风靡全球的经典泡泡龙小游戏来袭,你会喜欢嘛?(附源码)', 'pythonscrapy代理中间件,爬虫必掌握的内容之一', '海王必备,我用python写了一个微信机器人和她聊天之后把我拉黑了', 'PyCharm插件和配置', 'python中字典和列表的相互嵌套问题', '《Javascript百炼成仙》统一回复粉丝们的一些问题', '2021年TI杯全国大学生电子设计大赛智能送药小车(F题)【本科组】(jetsonnano+yolov4-tiny+STM32F4识别数字)(已推国赛)', '【Python从入门到实战】一篇文章带你搞懂Python中的类~', '【机器学习】回归算法-精讲']

这里我只写了一个爬取文章标题的正则表达式,后面我觉得比较麻烦就没有继续下去了。想着有没有其他方法可以爬取排行榜,后来用了第二种方法——etree和xpath


新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!

转载注明出处!

                                                   

 

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/503879.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【【浅谈python爬虫1】基于正则表达式的基础爬虫——爬取排行榜榜单内容】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2