网页抓取数据百度百科(如何写好爬虫之前数据的基本步骤)

优采云 发布时间: 2022-04-15 14:31

  网页抓取数据百度百科(如何写好爬虫之前数据的基本步骤)

  一、前言

  在开始写爬虫之前,我们先来了解一下爬虫

  首先,我们需要知道什么是爬虫。这里直接引用百度百科的定义。网络爬虫(又称网络蜘蛛、网络机器人,在FOAF社区,更常被称为网页追逐者),是一种根据一定的规则、程序或脚本自动从万维网上爬取信息的网络爬虫。

  这些还不够,我们还需要知道爬取数据的基本步骤。

  爬虫爬取数据一般分为三步获取网页

  做没有稻草的砖。我们需要的是数据都在网页中。如果我们无法获取网页,那么无论代码打得多么好,都是没有用的。所以爬虫的第一步一定是抓取网页。

  好的

  拿到网页后,我们要做的就是分析网页的结构,定位要爬取的信息,然后提取出来

  保存信息

  获取信息后,一般需要保存信息以备下次使用。

  完成以上三步后,会写一个简单的爬虫( ̄▽ ̄)》,然后开始写壁纸爬虫

  二、开始写爬虫

  图片1

  红框是我们要爬取的图片。

  在开始写代码之前,首先要理清思路,这样可以让我们的思路更清晰,写代码更流畅,代码更简洁。

  对于爬虫脚本,我们一般需要考虑以下几点: 爬什么:我们想从网页中获取什么数据

  如何攀爬:使用什么库?我需要使用框架吗?有ajax接口吗?

  爬取步骤:哪个先爬,哪个后爬

  以我们的项目为例:爬什么:

  我们的目标是下载网页中的图片。下载图片首先要获取图片的地址,图片的地址在网页中。

  所以我们需要爬取网页中图片的地址。

  攀登方式:

  图片有几十到上百张,下载量不大。无需使用框架,直接使用requests库。

  使用 xpath 解析网页。

  爬取步骤:

  第一步:分析网页,写入图片的xpath路径

  第 2 步:获取带有 requests 库的网页

  第三步:使用lxml库解析网页

  第四步:通过xpath获取图片链接

  第五步:下载图片

  第 6 步:命名并保存图像

  分析完毕,开始爬取!

  第一步是分析网页,在浏览器中打开网页,按F12进入开发者模式,选择Elements选项卡,如图:

  图二

  使用元素选择器:

  图三

  找到标签后,我们就可以写出标签的xpath路径了。这个比较简单,就不详细写了。如果您有任何问题,您可以发表评论。

  图片标签的xpath路径:

  #地图地址

  路径 = '//a[@title]/img/@src'

  #为了方便给图片起名字,我也顺便把图片名字往下爬了

  name = '//a[@title]/img/@alt'

  下一步是应用我们所学的知识。废话不多说,直接上代码:

  #-*- 编码:utf-8 -*

  导入请求

  从 lxml 导入 etree

  #网站地址

  网址 = '#39;

  # 获取网页

  r = requests.get(url)

  r.encoding = r.apparent_encoding

  #解析网页

  dom = etree.HTML(r.text)

  #获取图片img标签

  #先获取图片所在的img标签,然后分别获取图片链接和名称

  img_path = '//a[@title]/img'

  imgs = dom.xpath(img_path)

  #获取图片的链接和名称并下载保存

  对于 imgs 中的 img:

  相对路径“。” #xpath 的代表上层标签

  #不要忘记xpath总是返回一个列表!

  src = img.xpath('./@src')[0]

  名称 = img.xpath('./@alt')[0]

  #下载图片

  图片 = requests.get(src)

  #name 并保存图片

  使用 open(name+'.jpg', 'wb') 作为 f:

  f.write(image.content)

  运行结果:

  图片4

  这样,我们就完成了一个简单版的壁纸爬虫。为什么叫简单版?原因如下:图片太小,根本不能当壁纸(其实我很懒( ̄▽ ̄)》),要获取高清壁纸的话,还需要点击图片转到下一页。为简单起见,我只是爬取了首页的缩略图。

  不能自动翻页,一次只能下载一页图片。翻页可以在网页中获取到下一页的链接,或者找到URL的变化规律

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线