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爬虫抓取数据?相关推荐

  1. python爬虫抓取数据的步骤-Python爬虫抓取手机APP的传输数据

    大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 得到超级课程表登录的地址:http://120.55 ...

  2. Python爬虫-抓取数据到可视化全流程的实现

    (ps:我也是在学习的过程中,欢迎各位小伙伴跟我一起交流,一起学习) 1.爬取目标网站:业绩预告_数据中心_同花顺财经 (ps:headers不会设置的可以看这篇:Python--爬虫 用reques ...

  3. Python爬虫抓取数据时怎么防止ip被封

    大数据公司在做数据分析的时候,对目标网站频繁访问很容易触发网站的反爬机制,因此如果想要突破限制只能使用动态ip频繁切换地址模拟真实客户访问网站才能起到防封效果.比如在做数据抓取的时候报错403等限制访 ...

  4. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...

    python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07

  5. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  6. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转)

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  7. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  8. python爬虫招聘-Python爬虫抓取智联招聘(基础版)

    原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...

  9. Python学习教程:Python爬虫抓取技术的门道

    Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...

最新文章

  1. iometer硬盘测试工具附教程
  2. Java 8 CompletableFuture 教程
  3. 基于财通证券的数字化建设,总结的金融行业数字化转型方向
  4. luogu4365 秘密袭击 (生成函数+线段树合并+拉格朗日插值)
  5. apt get php mysql_Ubuntu10用apt-get配置apache+php+mysql(轉)
  6. 从JSP WEB页面往数据库写入出现乱码的一种解决方法
  7. Spring学习之旅(一):Bean的基础装配
  8. eclipse自动为变量生成Get/Set函数
  9. python根据字典绘制条形图_使用 Bokeh 为你的 Python 绘图添加交互性 | Linux 中国
  10. BI工具那么多 该如何选择
  11. 5g组网sa方式的演进_关于5G的SA(独立组网)和NSA(非独立组网),这篇通俗易懂!
  12. 简单Java类和数据库操作及javafx的结合小项目(二)
  13. 设备\Device\Harddisk1\DR1 有一个不对的区块
  14. library genesis (libgen)及Book系列网站的使用方法,外文图书下载神器,Springer学术书籍免费下载
  15. 个人网站添加百度统计
  16. Python3 + Scrapy爬链家深圳成交房信息
  17. 4.19 C语言练习(已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中)
  18. 有向图邻接矩阵幂的意义
  19. S5PV210 | S5PV210上进行Linux开发
  20. 学业水平考试b能上985吗_会考c能上985吗 985211对会考的要求

热门文章

  1. html5怎么制作背景漂心页面,船舶基本知识
  2. ACT_ElectronicTransformer_v1.1 ansys变压器仿真扩展插件
  3. ADC的相关知识整理
  4. 零基础学手绘彩铅,这些技巧美术集网校都整理好了,收藏起来吧~
  5. 代理模式与装饰器模式有何区别?
  6. boss直聘职位爬虫源代码
  7. Pinterest未来路在何方
  8. SQL数据类型对照表
  9. mysql2003错误如何解决_iPhone刷机出现未知错误3014如何解决【图文教程】
  10. iPhone怎么刷机呀,能把id刷了清除掉吗