如何使用Python爬虫抓取数据?
Python爬虫应用十分广泛,无论是各类搜索引擎,还是日常数据采集,都需要爬虫的参与。其实爬虫的基本原理很简单,今天小编就教大家如何使用Python爬虫抓取数据,感兴趣的小伙伴赶紧看下去吧!
工具安装
首先需要安装Python的requests和BeautifulSoup库。我们用Requests库用抓取网页的内容,使用BeautifulSoup库来从网页中提取数据。
安装python
运行pip install requests
运行pip install BeautifulSoup
抓取网页
完成必要工具安装后,我们正式开始编写我们的爬虫。我们的第一个任务是要抓取所有豆瓣上的图书信息。我们以https://book.douban.com/subject/26986954/为例,首先看看开如何抓取网页的内容。
提取内容
抓取到网页的内容后,我们要做的就是提取出我们想要的内容。在我们的第一个例子中,我们只需要提取书名。首先我们导入BeautifulSoup库,使用BeautifulSoup我们可以非常简单的提取网页的特定内容。
连续抓取网页
到目前为止,我们已经可以抓取单个网页的内容了,现在让我们看看如何抓取整个网站的内容。我们知道网页之间是通过超链接互相连接在一起的,通过链接我们可以访问整个网络。所以我们可以从每个页面提取出包含指向其它网页的链接,然后重复的对新链接进行抓取。
准备
IDE:pyCharm
库:requests、lxm
大概介绍一下,这俩库主要为我们做什么服务的
requests:获取网页源代码
lxml:得到网页源代码中的指定数据
言简意赅有没有 ^_^
搭建环境
这里的搭建环境,可不是搭建python的开发环境,这里的搭建环境是指,我们使用pycharm新建一个python项目,然后弄好requests和lxml 新建一个项目,光溜溜的啥也没有,新建个src文件夹再在里面直接新建一个Test.py吧 。
依赖库导入
在Test.py中输入:
import requests
这个时候,requests会报红线,这时候,我们将光标对准requests,按快捷键:alt + enter,pycharm会给出解决之道,这时候,选择install package requests,pycharm就会自动为我们安装了,我们只需要稍等片刻,这个库就安装好了。lxml的安装方式同理.
将这两个库安装完毕后,编译器就不会报红线了。
取网页源代码
requests可以很方便的让我们得到网页的源代码。
获取源码:
# 获取源码html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")# 打印源码print html.text
代码就是这么简单,这个html.text便是这个URL的源码
获取指定数据
现在我们已经得到网页源码了,这时就需要用到lxml来来筛选出我们所需要的信息
首先我们需要分析一下源码,我这里使用的是chrome浏览器,所以右键检查。
然后在源代码中,定位找到第一篇 。
首先点击源码页右上角的箭头,然后在网页内容中选中文章标题,这个时候,源码会定位到标题这里,
这时候选中源码的标题元素,右键复制。
得到xpath,它相当于地址。比如网页某长图片在源码中的位置。
表达式://*[@id="mainBox"]/main/div[2]/div[1]/h4/a
首先,//表示根节点,也就是说啊,这//后面的东西为根,则说明只有一个啊。我们需要的东西,在这里面。
然后/表示往下层寻找,根据图片,也显而易见,div -> main -> div[2] -> div[1] -> h4 -> a
追踪到a这里,然后我们在后面加个/text,表示要把元素的内容提取出来,所以我们最终的表达式长这样:
//*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()
这个表达式只针对这个网页的这个元素,不难理解吧?
那么这个东西怎么用呢?
所有代码
import requestsfrom lxml import etreehtml = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")# print html.textetree_html = etree.HTML(html.text)content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()')for each in content:print(each)
这时候,each里面的数据就是我们想要得到的数据了
打印结果:
如何撸一个ArrayList
打印结果却是这个结果,我们把换行和空格去掉
import requestsfrom lxml import etreehtml = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")# print html.textetree_html = etree.HTML(html.text)content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()')for each in content:replace = each.replace('\n', '').replace(' ', '')if replace == '\n' or replace == '':continueelse:print(replace)
用到了requests获取网页列表,用lxml筛选数据,可以看出python用来在网页上爬取数据确实方便不少,chrome也支持直接在源码中得到表达式xpath,这两个库的内容肯定不止这一点点,还有很多功能等着大家去挖掘。
以上就是“如何使用Python爬虫抓取数据”的详细讲解,大家都听懂了吗?
Python经验分享
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
Python学习路线
这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
学习软件
Python常用的开发软件,会给大家节省很多时间。
学习视频
编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
100道练习题
实战案例
光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。
如何使用Python爬虫抓取数据?相关推荐
- python爬虫抓取数据的步骤-Python爬虫抓取手机APP的传输数据
大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 得到超级课程表登录的地址:http://120.55 ...
- Python爬虫-抓取数据到可视化全流程的实现
(ps:我也是在学习的过程中,欢迎各位小伙伴跟我一起交流,一起学习) 1.爬取目标网站:业绩预告_数据中心_同花顺财经 (ps:headers不会设置的可以看这篇:Python--爬虫 用reques ...
- Python爬虫抓取数据时怎么防止ip被封
大数据公司在做数据分析的时候,对目标网站频繁访问很容易触发网站的反爬机制,因此如果想要突破限制只能使用动态ip频繁切换地址模拟真实客户访问网站才能起到防封效果.比如在做数据抓取的时候报错403等限制访 ...
- python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...
python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07
- 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据
Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转)
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- python爬虫招聘-Python爬虫抓取智联招聘(基础版)
原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...
- Python学习教程:Python爬虫抓取技术的门道
Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...
最新文章
- iometer硬盘测试工具附教程
- Java 8 CompletableFuture 教程
- 基于财通证券的数字化建设,总结的金融行业数字化转型方向
- luogu4365 秘密袭击 (生成函数+线段树合并+拉格朗日插值)
- apt get php mysql_Ubuntu10用apt-get配置apache+php+mysql(轉)
- 从JSP WEB页面往数据库写入出现乱码的一种解决方法
- Spring学习之旅(一):Bean的基础装配
- eclipse自动为变量生成Get/Set函数
- python根据字典绘制条形图_使用 Bokeh 为你的 Python 绘图添加交互性 | Linux 中国
- BI工具那么多 该如何选择
- 5g组网sa方式的演进_关于5G的SA(独立组网)和NSA(非独立组网),这篇通俗易懂!
- 简单Java类和数据库操作及javafx的结合小项目(二)
- 设备\Device\Harddisk1\DR1 有一个不对的区块
- library genesis (libgen)及Book系列网站的使用方法,外文图书下载神器,Springer学术书籍免费下载
- 个人网站添加百度统计
- Python3 + Scrapy爬链家深圳成交房信息
- 4.19 C语言练习(已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中)
- 有向图邻接矩阵幂的意义
- S5PV210 | S5PV210上进行Linux开发
- 学业水平考试b能上985吗_会考c能上985吗 985211对会考的要求