4006061723微信:shanghai3347

广州CDA数据分析师培训学校

广州CDA数据科学研究院分享如何使用Python爬虫抓取数据

来源:广州CDA数据分析师培训学校 发布时间:2022/6/21 16:13:59

    Python爬虫应用十分广泛,无论是各类搜索引擎,还是日常数据采集,都需要爬虫的参与。其实爬虫的基本原理很简单,今天小编就教大家如何使用Python爬虫抓取数据,感兴趣的小伙伴赶紧看下去吧!

广州CDA数据科学研究院分享如何使用Python爬虫抓取数据

  工具安装

  首先需要安装Python的requests和BeautifulSoup库。我们用Requests库用抓取网页的内容,使用BeautifulSoup库来从网页中提取数据。

  安装python

  运行pip install requests

  运行pip install BeautifulSoup

  抓取网页

  完成必要工具安装后,我们正式开始编写我们的爬虫。我们的个任务是要抓取所有豆瓣上的图书信息。首先看看开如何抓取网页的内容。

  提取内容

  抓取到网页的内容后,我们要做的就是提取出我们想要的内容。在我们的个例子中,我们只需要提取书名。首先我们导入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 requests

  from lxml import etree

  html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")

  # print html.text

  etree_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 requests

  from lxml import etree

  html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")

  # print html.text

  etree_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 == '':

  continue

  else:

  print(replace)

  打印结果:

  如何撸一个ArrayList

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

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

领取试听课
每天限量名额,先到先得
温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
  • 详情请进入 广州CDA数据分析师...

关于我们 | 招生信息 | 新闻中心 | 学校动态

版权所有:搜学搜课(www.soxsok.com)