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>
-
标签选择器,
p
:<p>
标签 -
class 选择器,
.parent
:class="parent"
属性 -
id 选择器,
#toy
:id="toy"
属性 -
属性选择器,
p[dance]
:<p dance>
其实前面的 class 选择器和 id 选择器,还可以写成
p[class=parent]
,span[id=toy]
,道理都是一样的。 -
后代元素选择器,
div.family div span
: 玩具枪 -
直接指定子元素位置,
:nth-of-type(n)
: 弟弟
以上只是常用的选择器,多种类型可以联合使用。有时间的话还可以去 菜鸟教程 了解更多CSS选择器。
Web Scraber
选择器介绍
-
Text: 用于文本
-
Table: 用于表格
-
Image: 用于图片
-
Link: 用于点击链接,进入子页面
-
Element: 容器,可以在当前页面放入多个元素(爬取数据项);
-
Element scroll down: 用于爬取下拉滚动式的页面结构体;
-
Element click: 用来爬取需要点击的分页页面;
- 采用click one的方式直接全部选取:
- 采用click more的方式来点击下一页进行获取:
-
遇到有规律的分页,可以使用[2-5]表示第2页到第5页,如果是步长为2页,则可以:[2-5:2
S/P/C
三个字符:
- S:Select,按下键盘的 S 键,选择选中的元素
- P:Parent,按下键盘的 P 键,选择选中元素的父节点
- C:Child,按下键盘的 C 键,选择选中元素的子节点
使用场景:比如说抓取标题时,标题本身就是个超链接,点击圈选内容后打开了新的网页,干扰我们确定圈选的内容,体验不是很好。
场景实操: 翻页
修改网页链接加载数剧
比如说你想抓取的网页链接是这样的:
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
- 采用click once: 点击一次
- 采用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
- 点赞
- 收藏
- 关注作者
评论(0)