Python:10分钟搞定不写代码的爬虫

代码自己敲

使用 Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆、验证码、异步加载等复杂问题。

Web Scraper插件

Web Scraper 官网中的简介:

Web Scraper Extension (Free!)
Using our extension you can create a plan (sitemap) how a web site should be traversed and what should be extracted. Using these sitemaps the Web Scraper will navigate the site accordingly and extract all data. Scraped data later can be exported as CSV.

先看一下,我用 web scaper 爬取到的数据:

1. 知乎轮子哥粉丝

轮子哥有 54 万多粉丝,我只抓取了前 20 页400条记录

设定数据字段

Web Scraper 抓取流程及要点:

安装Web Scraper插件后,三步完成爬取操作
1、Create new sitemap(创建爬取项目)
2、选取爬取网页中的内容,点~点~点,操作
3、开启爬取,下载CSV数据

其中最关键的是第二步,两个要点:

  1. 先选中数据块 Element,每块数据我们在页面上取,都是重复的,选中 Multiple
  2. 在数据块中再取需要的数据字段(上图Excel中的列)

爬取大量数据的要点,在于掌握分页的控制。
分页分为3种情况:

  1. URL 参数分页(比较规整方式)
    URL 中带有分页的 page 参数的,如:

    https://www.zhihu.com/people/excited-vczh/followers?page=2

    直接在创建sitemap时,Start URL中就可以带上分页参数,写成这样:

    https://www.zhihu.com/people/excited-vczh/followers?page=[1-27388]
  2. 滚动加载,点击“加载更多” 加载页面数据
  3. 点击分页数字标签(包括“下一页”标签)
    注意,这里第2-3种可以归为一类方式,是异步加载的方式,大部分都可以转为第1种的方式来处理。
    这种方式分页不太好控制。一般使用 Link 或 Element click 来实现分页的操作。
图示 Web Scraper 操作步骤:

第一步:创建sitemap

第二步:选取块数据Element

第三步:选取抓取的字段text

第四步:爬取

Web Scaper 使用体会:

1) 除了规整的分页方式外,其他分页方式不好控制,不同的网站受页面标签不同,操作也不一样。

2) 因为直接抓取页面显示值,抓取数据规整度不太好,需要 EXCEL 函数处理。
如,简书七日热门中文章发表时间,格式有好几种。

3) 有一点网页代码基础的上手很快,代码才是王道啊。
特别是有点Python爬虫基础的,在选取页面数据中很容易操作、理解,发现操作中出现的问题。

4) 比起八爪鱼、火车头等数据采集器,web scraper不需要下载软件,免费,无需注册,还很体会一点点代码的操作。当然 web scraper 也有付费的云爬虫。

Web Scraper 还可以导入sitemap,把下面的这段代码导入,你就可以抓取到知乎轮子哥前20页的粉丝:

{"startUrl":"https://www.zhihu.com/people/excited-vczh/followers?page=[1-20]","selectors":[{"parentSelectors":["_root"],"type":"SelectorElement","multiple":true,"id":"items","selector":"div.List-item","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"name","selector":"div.UserItem-title a.UserLink-link","regex":"","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"desc","selector":"div.RichText","regex":"","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"answers","selector":"span.ContentItem-statusItem:nth-of-type(1)","regex":"","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"articles","selector":"span.ContentItem-statusItem:nth-of-type(2)","regex":"","delay":""},{"parentSelectors":["items"],"type":"SelectorText","multiple":false,"id":"fans","selector":"span.ContentItem-statusItem:nth-of-type(3)","regex":"","delay":""}],"_id":"zh_vczh"}

 

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群
626062078,我们一起学Python!

时间: 2024-12-25 10:51:30

Python:10分钟搞定不写代码的爬虫的相关文章

Python基于VS2013 开发环境搭建 Hello World 10分钟搞定

1.先下载Python 安装 Next ->安装完成 2.以前安装过VS2013 打开VS2013 文件->新建项目 (此时如果没有Python Application,请点击里面的安装插件) 完成后选择 工具->选项  等待一会 前后没要10分钟 ,就可以把VS2013作为Python的IDE了. 开始刚下载Python下来,一看才25M,我说这么小怎么玩啊,没想到要借助VS2013开发工具,java eclipse也可以的.

10分钟搞定支付宝和微信支付 的 各种填坑

填坑   支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’ 解决办法: 这是base64.h中没有加入#import  系统库文件导致,这个错误报错方法直接想喷它一脸.报错方式太恶心. 问题2.截图告知你什么问题 解决办法: 这个问题可以同上的,心情

10分钟搞定支付宝和微信支付的各种填坑

支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路. 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’ 解决办法: 这是base64.h中没有加入#import 系统库文件导致,这个错误报错方法直接想喷它一脸.报错方式太恶心. 问题2.截图告知你什么问题 解决办法: 这个问题可以同上的,心情好,截图再

10分钟搞定nginx实现负载均衡

10.1 负载均衡的概念 对用户请求的数据进行调度的作用 对用户访问的请求网站可以进行压力的分担 10.2 常见的代理方式 10.2.1 正向代理 10.2.2 反向代理 10.3 负载均衡的部署环节 10.3.1 服务器的准备 lb01服务器:172.16.1.5 web01服务器:172.16.1.7 web02服务器:172.16.1.8 10.3.2 服务器环境的准备 10.3.2.1 web服务器的配置(172.16.1.7,172.16.1.8) [[email protected]

10分钟搞定react-router

1.路由的安装: $ npm install -S react-router 2.引入路由文件 import {Router, Route, browserHistory} from 'react-router'; 3.配置路由器 平级路由(做跳转用) const router = ( <Router history={browserHistory}> <Route path="/" component={App}/> <Route path="

10分钟搞定支付宝支付 的 各种填坑

填坑支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’ 解决办法: 这是base64.h中没有加入#import <Foundation/Foundation.h> 系统库文件导致,这个错误报错方法直接想喷它一脸.报错方式太恶心. 问题2.截图告知你

10分钟搞定Lync 2010和Quintum AF集成

接线拓扑 接线方法: l  电信直线直接接在Quintum AF的FXO口上 l  AF采用RJ45接入网络 使用效果: l  PSTN用户拨打直线的号码,会听到二次拨号音,然后再输入Lync用户的分机号码就可以直接振铃Lync用户 l  Lync用户直接拨打外部号码就可以直接振铃 l  如果采用2根或更多外线,那么可以设置共振手机等功能 备注: AF 采用P108-09-10版本 网关端配置 采用串口线配置IP地址: 配置完毕之后重新启动网关(经过配置之后网关的IP地址为192.168.1.4

10分钟搞定老板爱看的动态报表,这些小技巧你get了吗?

某一天,老板想看公司的销售报告.你接到这个任务后,开始处理并汇总数据.你在想如何将销售统计情况汇报给老板. 或许是一张Excel表.可是它看起来不仅枯燥,而且密密麻麻的数字很难抓到重点.到底哪个产品才是最畅销的?销量冠军排行榜是怎样的?销量比去年同期增长多少?难道要老板自己拿Excel表去做分析? 于是你放弃了这个想法,决定做几张图表,通过图表来回答上面的问题,形象直观.于是你做了下面这张图,有KPI看板,销量排行榜,增长率. 这时,你不禁产生了疑问:老板真的只想知道这几个指标吗?如果老板还想看

Tensorflow快餐教程(1) - 30行代码搞定手写识别

去年买了几本讲tensorflow的书,结果今年看的时候发现有些样例代码所用的API已经过时了.看来自己维护一个保持更新的Tensorflow的教程还是有意义的.这是写这一系列的初心. 快餐教程系列希望能够尽可能降低门槛,少讲,讲透. 为了让大家在一开始就看到一个美好的场景,而不是停留在漫长的基础知识积累上,参考网上的一些教程,我们直接一开始就直接展示用tensorflow实现MNIST手写识别的例子.然后基础知识我们再慢慢讲. Tensorflow安装速成教程 由于Python是跨平台的语言,