python爬虫入门实战!爬取博客文章标题和链接!
最近有小伙伴和我留言想学python爬虫,那么就搞起来吧。
准备阶段
爬虫有什么用呢?举个最简单的小例子,你需要《战狼2》的所有豆瓣影评。最先想的做法可能是打开浏览器,进入该网站,找到评论,一个一个复制到文本中,保存,翻页,接着复制,直到翻到最后一页。而爬虫只要写脚本,执行,泡杯咖啡,坐等他执行完。
首先需要在电脑上装好 python3 和 pip 。此外还需要知道python的一些基本语法。这些内容网上搜索有许多教程(例如廖雪峰),这边就不再细说了。
我们这次需要使用的是 正则表达式 re 库和第三方的 requests 库,以下是安装方法。
pip3 install requests
引入库。
import requests
import re
爬虫可以简单的分为获取数据,分析数据,存储数据三个步骤。
下载数据
简单来说一个网页是由一个html文件解析构成,我们需要获取这个文本内容。
每个浏览器都可以通过开发者工具获取到文本内容,以chrome为例,打开网页后,右键->检查。
右边的 Elements 就是我们要下载的数据。
让我们看看 requests 是如何获取这个数据的。
url='http://lamyoung.com/';
html=requests.get(url);
if html.status_code == 200:html_bytes=html.content;html_str=html_bytes.decode();
上面的 html_str 就是我们需要的源数据。获取数据我们需要一个网页地址,获取后判断状态码是否为200,最后再将内容decode就得到需要的整个html源数据。
分析数据
这次我们用正则表达式去解析源数据,截取到我们需要。关于详细的正则知识可以在这里中学习。
现在我们的目标是抓取博客的文章标题和链接,我们可以通过刚才的开发者工具获取文章标题和链接的特征。
可以看到我们要的内容都具有以下这种格式。
<a href="链接"><h2 class="post-title">标题</h2>xxxxxx</a>
我们就为这种格式写出正则表达式。(ps: 我也写了几次才写对,看不懂的话我们私下交流交流)
regex = r"<a href=\"(.*)\">[\s]*?<h2 class=\"post-title\">[\s]*(.*)[\s]*</h2>[\s\S]*?</a>"
使用正则表达式中的 findall 把所有内容找出来,并保存在字符串中。
write_content = ''
all_items = re.findall(regex,html_str);
for item in all_items:write_content=f'{write_content}\n{item[1]}\nhttp://lamyoung.com{item[0]}\n'
但是,我们只爬了其中的一页。还有许多页没有爬呢!(ps: 骄傲脸,我已经写了好多✌️页的原创内容了。)
我们可以点几个下一页,很容易发现其中的规律。
第一页:http://lamyoung.com/
第二页:http://lamyoung.com/page2/
第三页:http://lamyoung.com/page3/
…
为此,我们加个循环判断就可以啦。
index=1
while True:page_url = '';if index>1:page_url=f'page{index}/'url=f'http://lamyoung.com/{page_url}';html=requests.get(url);if html.status_code != 200:print(html);break;
在判断状态码不为200时,退出循环。
存储数据
这次我们就用文本存储来结束我们的教程吧。(ps:数据库存储我也还没学到,哈哈哈呃。。)
with open('lamyoung_title_out.txt','w',encoding='utf-8') as f:f.write(write_content)
最后看下输出结果吧~
小结
本文只是简单地带你入门写个python爬虫(其实也不简单哈,正则表达式还是要花时间学学)。其实爬虫还涉及多线程,数据库,还有其他解析库(可能可以替代正则表达式)。后续学到了第一时间分享(也许)给大家。
“其实我还写过python处理excel表导出json,自动处理svn添加删除等脚本,欢迎一起学习?”
我是白玉无冰,游戏开发技术小赤佬,也玩 python 和 shell。欢迎私信交流学习!
完整代码
参考资料
python爬虫入门实战!爬取博客文章标题和链接!相关推荐
- Python爬虫入门 | 4 爬取豆瓣TOP250图书信息
先来看看页面长啥样的:https://book.douban.com/top250 我们将要爬取哪些信息:书名.链接.评分.一句话评价-- 1. 爬取单个信息 我们先来尝试爬取书名,利用之 ...
- Python爬虫入门(爬取豆瓣电影信息小结)
Python爬虫入门(爬取豆瓣电影信息小结) 1.爬虫概念 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或脚本.爬虫的本质是模拟浏览器打开网页,获取网页中我们想要的那部分数据. 2.基本流程 ...
- Python爬虫入门 | 5 爬取小猪短租租房信息
小猪短租是一个租房网站,上面有很多优质的民宿出租信息,下面我们以成都地区的租房信息为例,来尝试爬取这些数据. 小猪短租(成都)页面:http://cd.xiaozhu.com/ 1.爬取租房标题 ...
- python爬虫入门(一)爬取钓鱼吧
python爬虫入门(一)爬取钓鱼吧 # Date : 2022/1/1 17:11 ''' 需求:1.输入贴吧名称:钓鱼吧https://tieba.baidu.com/f?kw=钓鱼吧&p ...
- python 爬虫入门--文字爬取
python 爬虫入门–文字爬取 对于爬虫,相信大家都不陌生,但是如何入门,大家还是停留在了解认知阶段吗?那可以试试下边的方法,一起来试一下. 首先我们试试爬取网页中的***文本信息*** 使用的是我 ...
- python爬虫-使用BeautifulSoup爬取新浪新闻标题
** python爬虫-使用BeautifulSoup爬取新浪新闻标题 ** 最近在学习爬虫的技巧,首先学习的是较为简单的BeautifulSoup,应用于新浪新闻上. import requests ...
- python爬虫:Selenium爬取B站视频标题、播放量、发布时间
上次尝试了利用Ajax机制爬取B站视频播放量等数据(链接在下方),但是发现响应的JSON数据中没有发布时间的数据,这次决定用Selenium试一下. python爬虫:Ajax爬取B站视频标题.播放量 ...
- python爬虫入门教程-Python爬虫入门教程——爬取自己的博客园博客
互联网时代里,网络爬虫是一种高效地信息采集利器,可以快速准确地获取网上的各种数据资源.本文使用Python库requests.Beautiful Soup爬取博客园博客的相关信息,利用txt文件转存. ...
- python爬虫教程-Python爬虫入门教程——爬取自己的博客园博客
互联网时代里,网络爬虫是一种高效地信息采集利器,可以快速准确地获取网上的各种数据资源.本文使用Python库requests.Beautiful Soup爬取博客园博客的相关信息,利用txt文件转存. ...
最新文章
- Python处理脑电--Epochs数据可视化
- Hibernate:根据配置文件自动生成表结构的2种方式
- 第 8 章 容器网络 - 061 - flannel 的连通与隔离
- 计算机专业论文要交源代码吗,计算机毕业论文源代码.doc
- checkbox设置三种状态 qt_CheckBox复选框用法及实例代码
- Java 进阶之路:异常处理的内在原理及优雅的处理方式
- 14个新鲜的免费图标集
- 网络摄像头的地盘争夺战——四款僵尸软件的技术解析
- 看一遍就能玩转QT字体类(1)-QFont
- 数据结构之数组的存储
- storm风暴英雄 tempo_《风暴英雄》Tempo Storm天梯环境速报
- GTK开发(二)控件和布局
- iptables failed: iptables --wait -t nat -A DOCKER
- 全球及中国细胞治疗产业应用前景与投资潜力建议报告2022-2028年
- 免费合并多个PDF文件
- esxi虚拟机的显卡怎么来的_关于ESXI显卡直通(VmDirectPath),使虚拟机变成HTPC的若干经验...
- 山西大同大学计算机科学与技术在哪个校区,山西大同大学有几个校区及校区地址哪个校区最好...
- 求区间[1,n]之间的回文数
- 【pyecharts数据可视化】python爬取去哪儿网景点数据,做交互式数据可视化
- Google earth engine(GEE)——在GEE地图上加载图表