Web Scraper使用教程

举报
brt2 发表于 2021/11/12 20:32:42 2021/11/12
【摘要】 网页基础 网页CSS选择器 Web Scraber 选择器介绍 场景实操: 翻页 修改网页链接加载数剧 抓取分页器翻页的网页 cnblog: 点击「更多按钮」翻页 抓取「滚动加载」类型网页 抓取表格数据 实战操作 如何导入别人已经写好的 Web Scraper 爬虫 Web Scraper抓取多条内容: 容器操作——Element Python爬虫:配合Beautifulsoup 网页基础...

网页基础

网页CSS选择器

Web Scraper 高级用法——CSS选择器的使用

<div class="family">
  <p class="parent">父亲👨</p>
  <p class="parent">母亲👩</p>
  <p class="girl" dance>姐姐💃</p>
  <p class="boy" dance>哥哥🕺</p>
  <p class="boy">弟弟👶</p>
  <div>
    玩具柜
    <span id="toy">一把 🔫</span>
  </div>
</div>
  1. 标签选择器, p: <p>标签

  2. class 选择器, .parent: class="parent"属性

  3. id 选择器, #toy: id="toy"属性

  4. 属性选择器, p[dance]: <p dance>

    其实前面的 class 选择器和 id 选择器,还可以写成 p[class=parent]span[id=toy] ,道理都是一样的。

  5. 后代元素选择器, div.family div span: 玩具枪

  6. 直接指定子元素位置, :nth-of-type(n): 弟弟

以上只是常用的选择器,多种类型可以联合使用。有时间的话还可以去 菜鸟教程 了解更多CSS选择器。

Web Scraber

bilibili: 官方教程

选择器介绍

  • Text: 用于文本

  • Table: 用于表格

  • Image: 用于图片

  • Link: 用于点击链接,进入子页面

  • Element: 容器,可以在当前页面放入多个元素(爬取数据项);

  • Element scroll down: 用于爬取下拉滚动式的页面结构体;

  • Element click: 用来爬取需要点击的分页页面;

    1. 采用click one的方式直接全部选取:
    2. 采用click more的方式来点击下一页进行获取:
  • 遇到有规律的分页,可以使用[2-5]表示第2页到第5页,如果是步长为2页,则可以:[2-5:2

S/P/C 三个字符:

  • S:Select,按下键盘的 S 键,选择选中的元素
  • P:Parent,按下键盘的 P 键,选择选中元素的父节点
  • C:Child,按下键盘的 C 键,选择选中元素的子节点

使用场景:比如说抓取标题时,标题本身就是个超链接,点击圈选内容后打开了新的网页,干扰我们确定圈选的内容,体验不是很好。

场景实操: 翻页

修改网页链接加载数剧

cnblog: 控制链接批量抓取数据

比如说你想抓取的网页链接是这样的:

http://example.com/page/1
http://example.com/page/2
http://example.com/page/3

你就可以写成 http://example.com/page/[1-3] ,把链接改成这样,Web Scraper 就会自动抓取这三个网页的内容。

那么像我们之前分析的豆瓣网页呢?它不是从 1 到 100 递增的,而是 0 -> 25 -> 50 -> 75 这样每隔 25 跳的,这种怎么办?

其实也很简单,这种情况可以用 [0-100:25] 表示,每隔 25 是一个网页。

抓取分页器翻页的网页

使用 Element click 选择器

  • Click type

    1. 采用click once: 点击一次
    2. 采用click more: 点击多次,直至完结
  • Click element uniqueness, 停止抓取数据的选项

    一个网站的数据不可能是无穷无尽的,总有加载完的时候,这时候「加载更多」按钮文字可能就变成「没有更多」、「没有更多数据」、「加载完了」

  • Discard initial elements

    是否丢弃初始元素,这个主要是去除一些网站的重复数据用的,不是很重要,我们这里也用不到,直接选择 Never discard,从不丢弃数据。

  • Delay

    点击加载更多后,数据加载需要一段时间,delay就是等待数据加载的时间。

cnblog: 点击「更多按钮」翻页

使用 Element click 选择器

抓取「滚动加载」类型网页

使用 elements scroll down 选择器

抓取表格数据

不建议你用 Web Scraper 的 Table Selector?

  • 存在Bug
  • 现代网站,很少有人用HTML原始表格了

实战操作

如何导入别人已经写好的 Web Scraper 爬虫

Web Scraper抓取多条内容: 容器操作——Element

Python爬虫:配合Beautifulsoup

csdn: Python爬虫基础(Requests+Beautifulsoup)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。