那个…我不会写代码,可以爬取数据吗?

不会写代码,但是又想爬取网上的数据,你咋不上天呢?


不过别失望着先,对于大部分普通的网页数据,即使你不会代码,也可以借助工具来帮助你爬取你想要的数据。
当然,你最好能懂一点点前端,比如最简单的 HTML、CSS,然后再结合一个叫做「web scraper」的插件就可以开始你的爬虫之旅了。


接下来,我会给你说一下如何通过这个插件,爬取你想要的数据。我比较建议你使用 Chrome 浏览器,首先你需要安装下载「web scraper」插件,可能有些朋友访问不了,没关系,我已经帮你下载好了,在公众号「学习 Python 的正确姿势」里发送「爬虫插件」获取。

下载好之后,在 chrome 中访问 chrome://extensions/ ,然后打开开发者模式,点击「加载已解压的扩展程序」,把文件选中就可以直接安装了。

随便打开一个网页,按一下 F12,你可以看到你的控制面板的菜单栏里多了一个「web Scraper」,那么就说明你安装成功了。

随便打开一个网站,比如你想爬取豆瓣排名前 250 部电影的信息,那么就可以打开这个网页,然后创建一个 sitemap:

名称可以随便定义, start url 复制你当前要爬取的链接地址:

创建完成之后,接下来就要选择你要爬取的具体信息,点击 「add new selector」来选择你要爬取的元素:

因为你需要抓取的是这个页面的所有条目,类型可以选择 Element:

接着点击 「select」按钮,这时候你的鼠标就可以去选中你要爬取的元素:

红色框出来的地方就是你要爬取的内容,点击 「Done selecting」,这时候它会自动识别你要爬取的元素标签:

Id 名称可以随便取,比如 film:

要注意的一点是,因为你是要在当前的页面中爬取所有的条目,所以要把 Multiple 勾选上,然后点击保存。

接下来你要在每个条目中获取你想要爬取的关键信息,可以点击「add new selector」来继续选择:

比如你要抓取每个电影的豆瓣链接,那么你可以选择 Link 这个类型:

接着就点击「select」来选择提取具体的链接元素:

选择完后你还可以点击「data preview」来预览你要抓取的内容是否正确:

注意这里我们是在条目下选择的元素,所以我们的父选择器要选择我们刚刚创建的「film」:

然后点击保存就可以了。

同样的,你要抓取其它具体信息,比如电影的描述,评分,排名等信息,都可以用上述的方法选择相应的元素。

电影描述信息:

电影的评分:

电影的排名:

如果你还想爬取每个电影链接点进去的其它信息,比如电影的片长,电影的图片,那么你可以点击链接进去详情页:

同样的方式,比如你爬取电影的时长就添加相应的选择器,要知道的一点是,因为你当前的页面是从 link 进来的,所以你的父选择器要选择 link:

选择图片,可以把类型选为 Image:

当你把你要抓取的数据都选择完成之后,你就可以选择「Selector graph」,可以看到你爬取数据的层级关系:

万事俱备,只欠一爬,点击「Scrape」:

为了不把别人的网站爬蹦,你可以设置一下请求延时,默认 2000 ms 就可以了。

接着点击「start scraping」就可以开爬了,这时候会自动浏览每个你要抓取的页面:

稍等一会就爬完了,点击「refresh」:

可以看到你要爬取的数据就有了:

不过有一个问题,你现在抓取的只有 25 条数据,也就是第一页的数据,如何让它自动翻页,把所有数据都爬下来呢?

我们来观察一下页面的请求规则,当我们请求第一页的时候是这样的:

请求第二页的时候 start 变成了 25:

请求第三页的时候 start 变成了 50:

通过小学数学老师的教导,我们可以得出规律,每翻一页,start 就加 25,那么到第 10 页就是 225。

点击「edit metadata」来修改一下 URL:

使用中括号来定义区间和步长:

意思就是说,start 会在 0-225 之间,每一次以 25 的叠加。

那么这次,它就会听你的话,把所有的数据都爬下来了:

最后,你一定想把所有数据保存到本地,很简单,点击「export data」:

选择要保存的文件格式:

下载后就可以在本地操作了:

OK,以上就是小帅b今天给你带来的分享,你可以利用它去爬取知乎、百度、豆瓣等等网页上的数据。

都看到这里了,别忘了给我个三连哦~

当然,有些数据还是得写代码的,你可以进入我的 VIP 网站:fxxkpython.com,点击「python 爬虫」继续玩耍。

我们下回见,peace!

发表回复