当前位置:   article > 正文

如何使用Python爬虫抓取数据?_python数据挖掘 爬虫

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可以很方便的让我们得到网页的源代码。

获取源码:

  1. # 获取源码
  2. html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")
  3. # 打印源码
  4. 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()

这个表达式只针对这个网页的这个元素,不难理解吧?

那么这个东西怎么用呢?

所有代码

  1. import requests
  2. from lxml import etree
  3. html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")
  4. # print html.text
  5. etree_html = etree.HTML(html.text)
  6. content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()')
  7. for each in content:
  8. print(each)

这时候,each里面的数据就是我们想要得到的数据了

打印结果:

如何撸一个ArrayList

打印结果却是这个结果,我们把换行和空格去掉

  1. import requests
  2. from lxml import etree
  3. html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")
  4. # print html.text
  5. etree_html = etree.HTML(html.text)
  6. content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()')
  7. for each in content:
  8. replace = each.replace('\n', '').replace(' ', '')
  9. if replace == '\n' or replace == '':
  10. continue
  11. else:
  12. print(replace)

用到了requests获取网页列表,用lxml筛选数据,可以看出python用来在网页上爬取数据确实方便不少,chrome也支持直接在源码中得到表达式xpath,这两个库的内容肯定不止这一点点,还有很多功能等着大家去挖掘。

以上就是“如何使用Python爬虫抓取数据”的详细讲解,大家都听懂了吗?

 Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/446145
推荐阅读
相关标签
  

闽ICP备14008679号