c爬虫抓取网页数据(安装python运行pipinstallBeautifulSoup抓取网页完成必要工具安装后)

优采云 发布时间: 2021-11-01 18:03

  c爬虫抓取网页数据(安装python运行pipinstallBeautifulSoup抓取网页完成必要工具安装后)

  本期文章将与大家分享如何使用Python爬虫爬取数据的内容。小编觉得很实用,所以分享出来供大家参考,跟着小编一起来看看吧。

  工具安装

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

  安装蟒蛇

  运行 pip 安装请求

  运行 pip install BeautifulSoup

  爬网

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

  提取内容

  抓取网页内容后,我们要做的就是提取我们想要的内容。在我们的第一个例子中,我们只需要提取书名。首先,我们导入 BeautifulSoup 库。使用BeautifulSoup,我们可以非常简单的提取网页的具体内容。

  持续的网络爬行

  至此,我们已经能够抓取单个网页的内容,现在让我们看看如何抓取网站的整个内容。我们知道网页是通过超链接相互连接的,我们可以通过链接访问整个网络。所以我们可以从每个页面中提取到其他网页的链接,然后重复抓取新的链接。

  准备

  IDE:pyCharm

  库:请求,lxm

  即将介绍,这两个库主要为我们服务

  requests:获取网页源代码

  lxml:获取网页源代码中的指定数据

  简洁明了,有没有^_^

  设置环境

  这里的搭建环境不是搭建python开发环境。这里的构建环境是指我们使用pycharm新建一个python项目,然后用requests和lxml新建一个项目。里面什么都没有。创建一个新的 src 文件夹。然后直接在里面新建一个Test.py。

  依赖库导入

  在 Test.py 中输入:

  *敏*感*词*请求

  此时,请求将报告一条红线。这时候我们将光标指向requests,按快捷键:alt+enter,pycharm会给出解决方案。这时候选择安装包请求,pycharm会自动为我们安装。,我们只需要稍等片刻,库就安装好了。lxml的安装方法是一样的。

  安装这两个库后,编译器不会报红线。

  获取网页源代码

  请求可以很容易地让我们得到网页的源代码。

  获取源代码:

  # 获取源代码

  html = requests.get("")

  # 打印源代码

  打印 html.text

  代码就这么简单,这个html.text就是这个网址的源码

  获取指定数据

  现在我们有了网页的源代码,我们需要使用lxml过滤掉我们需要的信息。

  首先,我们需要分析源代码。我这里使用的是 Chrome 浏览器,所以右键点击查看。

  然后在源代码中,找到第一个。

  首先点击源页面右上角的箭头,然后在网页内容中选择文章标题。这时候源码会定位到这里的标题。

  这时候选择源码的title元素,右键复制。

  获取xpath,相当于一个地址。比如源代码中网页长图的位置。

  表达式://*[@id="mainBox"]/main/div[2]/div[1]/h5/a

  首先,//表示根节点,也就是说,这个//后面的东西是根,表示只有一个。我们需要的就在这里。

  然后 / 表示寻找下层。根据图片也很明显,div -> main -> div[2] -> div[1] -> h5 -> a

  跟踪到a这里,然后我们在最后加上/text表示我们要提取元素的内容,所以我们最终的表达式是这样的:

  //*[@id="mainBox"]/main/div[2]/div[1]/h5/a/text()

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

  那么这个东西是如何工作的呢?

  所有代码:

  *敏*感*词*请求

  从 lxml 导入 etree

  html = requests.get("")

  # 打印 html.text

  etree_html = etree.HTML(html.text)

  content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h5/a/text()')

  对于每个内容:

  打印(每个)

  这时候每个里面的数据就是我们想要得到的数据

  打印结果:

  如何拍打 ArrayList

  打印结果就是这个结果,我们去掉了换行符和空格

  *敏*感*词*请求

  从 lxml 导入 etree

  html = requests.get("")

  # 打印 html.text

  etree_html = etree.HTML(html.text)

  content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h5/a/text()')

  对于每个内容:

  replace = each.replace('\n','').replace('','')

  如果替换 =='\n' 或替换 =='':

  继续

  别的:

  打印(替换)

  打印结果:

  如何拍打 ArrayList

  感谢您的阅读!关于《如何使用Python爬虫抓取数据》这篇文章分享到这里,希望以上内容可以对大家有所帮助,让大家学到更多的知识,如果你觉得文章可以,可以分享出去让更多人看到!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线