学1个月爬虫就月赚6000?告诉你爬虫的真实情况!

Posted 蒋白白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学1个月爬虫就月赚6000?告诉你爬虫的真实情况!相关的知识,希望对你有一定的参考价值。

用爬虫赚外快的事情我也干了很多年,爬虫自然不在话下。

那么今天我来说说5个深入一点的爬虫问题,让你清楚爬虫的真实情况:

1.现在的爬虫接单真能1个月赚6000的快外?
2.初级爬虫只能接一些小单,怎样才算初级爬虫水平?
3.中级爬虫是职业爬虫工程师上岗水平,需要具备什么?
4.高级爬虫可以说是爬虫大神,需要掌握哪些技术?
5.爬虫更高水平要学什么?巅峰爬虫是什么样子?

一、爬虫能否一个月赚6000的外快?

答案肯定是能的,但这取决于你的爬虫技术水平。

如果你只是一个初级爬虫你只能靠运气接单,你拿得出手的一些爬虫作品可能入不了大单金主的法眼,有时候接个技术难度高一点的,整出来效果都需要花费好几天,大多数初级爬虫的人接单都不会超过200块钱,大多数都是几十块钱的单子,月挣6000需要接多少单?我就算你一单的价格平均在100块钱,那你也是需要60单!

做过兼职的人都知道,1个月60单私活几乎是不可能的,除非你有特殊的渠道。

再者,抛开初级爬虫连产品经理都会之外,现在还有那么多第三方网站提供较强大的爬虫功能,不会爬虫的人花点小钱也能解决,比如某爪鱼、某裔采集器,不管是时间还是成本上都比找花钱请一个爬虫新手强。

但如果你的技术达到了中级爬虫或更高的水平,那就是靠实力和运气来挣钱了。从技术层面上来讲,接大点的单是没有问题的,一单的价格也是在400~几千不等,如果是均价600元一单来算,一个月做个四五单赚几千块钱是没问题的,拼一点或者技术好一点的可能赚得更多,前提是你得有这个技术,打脸充胖子是会翻船的。

挣6000块钱是有可能的,几千块钱的单子以前我也做过。

我们继续下面的话题,来看看爬虫的初级、中级、高级和巅峰水平是什么样子!

二、初级爬虫

根据我这些年来对爬虫的了解,初级爬虫的水平大概是这个样子的:

这个水平能干什么?就是爬虫一些基本的网站,涉及一点反爬就GG。

比如说我们去爬1个某个网站的文章,这个网站没有带反爬机制,那么用 requests 等库就够了,用 XPath、BeautifulSoup、PyQuery 或者正则表达式解析一下网页的源码,再加个文本写入存下来就完事了。

其中的难度并不大,无非是几个方法调用和循环加储存,如果存储方面稍微扩展一下的话,可以对接上 mysql、MongoDB、Elasticsearch、Kafka 等等来保存数据,实现持久化存储。以后查询或者操作会更方便。

这就是初级爬虫的水平,能爬,但距离“可见即可爬”还道长路远,接单可想而知也会较吃力,虽然它很基础,但这又是你学爬虫的必经之路。

上面这些东西对于新手来说1个月能学完吗?我觉得难度不小,我不说别的,就说Python入门这一块,就包含了不少的东西。

1天4个小时学习,没有基础的话,在Python入门这一块你可能就要花2周时间才能学完且稳固,剩下的两周,你能学完并掌握初级爬虫剩下的知识吗?

技术这条道路上很忌讳急功近利。我知道你可以从头到晚看完并理解一本书就只需要几天时间,但看完了你能用起来吗?看是看完了,但看了什么记不起来了,你需要反复练习,同样的,你1个月是能跟着学完没有问题,但你能不能站得稳还是个问题。

三、中级爬虫

中级爬虫的水平可以算是职业爬虫师的基本水平,除了初级爬虫的知识点之外,还应该掌握以下一些知识点:

1.爬取方式

当你的requests 不顶用的时候(爬下来的和网页显示的不一样),你就应该想到数据来源可能是 Ajax,你去分析网站的时候就得懂javascript ;如果想绕过分析 Ajax 和一些 JavaScript 逻辑的过程来爬取数据,我们就得用 Puppeteer、Pyppeteer、Selenium、Splash 等来模拟浏览器的方式来爬取。

2.爬取速度

除了爬取方式,还有爬取速度,这时候你就得有多进程、多线程、协程的知识储备了。

3.爬APP

如果你只会网页爬虫,那你还算不上中级爬虫的水平,你还得会爬APP,APP也占据着半壁江山。

这个时候你就得会Charles、Fiddler抓包了,抓到之后拿来模拟就行;如果接口被加密了,可以用 mitmproxy 直接监听接口数据或者走 Hook,比如上 Xposed 也可以拿到。

爬APP时还有一点比较重要,就是自动化爬取。如果是自己手动戳来实现爬虫的话,给再多钱也没用,这就不是个人干的活…比较好的解决方案就是adb工具和Appium ,你说该不该学?

四、高级爬虫

高级爬虫师不管是在职场还是兼职方面,都有着很大的优势,高级爬虫水平应该掌握以下几个方面的技术:

1.企业级爬虫

但凡是接触过大规模的爬虫的人都会有所体会到,多线程、多进程和协程虽然能够加快爬取速度,但说白了还是个单机的爬虫,比起更高级的分布式爬虫要逊色很多,分布式爬虫才算得上企业级爬虫。

分布式爬虫的重心就在于资源共享,那么我们很有必要去掌握的东西就是RabbitMQ、Celery、Kafka,用来这些基础的队列或者组件来实现分布式;其次就是我们大名鼎鼎的Scrapy爬虫框架,也是目前用的最多的爬虫框架,对于Scrapy的Redis、Redis-BloomFilter、Cluster 的理解和掌握是必不可少的。

掌握这些东西之后,你的爬虫才能达到企业级的高效率爬虫。

2.应对反爬的技术

高级爬虫水平应该考虑的另一个重心就是反爬。

网页反爬机制的常见操作就是验证码,什么滑块验证啊、实物勾选啊、加减法啊等等的,招式层出不穷,这个时候你就得知道如何去应付这些常见的验证码了。

还有反爬中常见的IP检测,搞不好就会封你的号,所以应对手法也是必须得有的,不管你是用免费代理还是付费代理来换代理IP,都是可以的。

以及应对反爬时的分流技术避免账号被封,分流技术就得建池子,Cookies 池、Token 池、Sign 池,都可以,有了池子之后,你被封的概率也会降低,你也不想爬个公众号结果WX被封了吧?

五、更高水平的爬虫(爬虫的巅峰)

更高水平的爬虫,以下4点是必会的内容:

1.JS逆向

为什么要学JS逆向爬取? 在反爬和反反爬的对抗中,用Selenium 等方式来爬也是可以,但效率还是低了,毕竟它模拟的是网页渲染的整个过程,而真实的数据可能仅仅就藏在一个小接口里,所以JS逆向则是更高级别的爬取技术,尤其是在大型网站的数据爬取,例如某多多和某宝,如果你能用JS逆向去爬下来,无疑是技术高超的证明之一,但JS逆向也不是谁都能修炼成的,确实烧头发。

APP的逆向就更不用说,网页可以逆向,APP也能逆向,那你配得上“牛逼”二字。

2.智能化爬虫

何为智能化爬虫? 举个例子,一般情况下,写一个爬取小说网站的爬虫,要根据不同的网站编写不同的提取规则,才能提取出想要的内容。而如果使用智能化解析的话,不论是哪个网站,你只需要把网页的url传递给它,就可以通过算法智能识别出标题、内容、更新时间等信息,而不需要重复编写提取规则。

智能化爬虫简而言之就是爬虫与机器学习技术相结合,使得爬虫更加智能化,不然的话,要爬1万个网站,难道我们要写1万个爬虫脚本?

3.爬虫与运维

爬虫什么时候与运维搭上关系了?它们俩一直都有着密不可分的关系,只是你的爬虫需求或者水平没有达到,所以不会考虑到它们。

爬虫与运维的关系主要体现在部署和分发、数据的存储和监控这几个方面。

比如说如何把1个爬虫快速部署到100台主机运行起来?比如怎样监控一些爬虫的占用内存和 CPU 状况?比如爬虫如何设置报警机制来保证爬虫项目的安全?

Kubernetes 、Prometheus 、Grafana是爬虫在运维方面用的比较多的技术,在做大点的爬虫项目时我也是经常拿它们来保驾护航。

4.爬虫的巅峰

什么是巅峰?可能永远都没有巅峰…只要一天没有拥有强者的发型(全秃),我就不敢说我看到了巅峰…

我隐约感到,爬虫做到了极致,既能干全栈,又能做数据分析,说不好还是算法大师,没准在人工智能还能有所建树,这难到就是爬虫的巅峰吗?

最后免费分享给大家一份Python全套学习资料,包含视频、源码,课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python必备开发工具

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、Python练习题

检查学习结果。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

 

 

 

 

清华学霸告诉你一款能取代 Scrapy 的爬虫框架 feapder

Python 最流行的爬虫框架是 Scrapy,它主要用于爬取网站结构性数据

今天推荐一款更加简单、轻量级,且功能强大的爬虫框架

介绍及安装

和 Scrapy 类似,feapder 支持轻量级爬虫、分布式爬虫、批次爬虫、爬虫报警机制等功能

内置的 3 种爬虫如下:

  • AirSpider

    轻量级爬虫,适合简单场景、数据量少的爬虫

  • Spider

    分布式爬虫,基于 Redis,适用于海量数据,并且支持断点续爬、自动数据入库等功能

  • BatchSpider

    分布式批次爬虫,主要用于需要周期性采集的爬虫

在实战之前,我们在虚拟环境下安装对应的依赖库 

  # 安装依赖    pip3 install feapder

我们以最简单的 AirSpider 来爬取一些简单的数据

详细实现步骤如下( 5 步)

 创建爬虫项目

首先,我们使用「 feapder create -p 」命令创建一个爬虫项目

创建爬虫 AirSpider

命令行进入到 spiders 文件夹目录下,使用「 feapder create -s 」命令创建一个爬虫

其中

  • 1 为默认,表示创建一个轻量级爬虫 AirSpider

  • 2 代表创建一个分布式爬虫 Spider

  • 3 代表创建一个分布式批次爬虫 BatchSpider

配置数据库、创建数据表、创建映射 Item

以 Mysql 为例,首先我们在数据库中创建一张数据表

然后,打开项目根目录下的 settings.py 文件,配置数据库连接信息

# settings.py

MYSQL_IP = "localhost"
MYSQL_PORT = 3306
MYSQL_DB = "xag"
MYSQL_USER_NAME = "root"
MYSQL_USER_PASS = "root"

最后,创建映射 Item( 可选 )

进入到 items 文件夹,使用「 feapder create -i 」命令创建一个文件映射到数据库

PS:由于 AirSpider 不支持数据自动入库,所以这步不是必须

 编写爬虫及数据解析

第一步,首先使「 MysqlDB 」初始化数据库

from feapder.db.mysqldb import MysqlDB

class TophubSpider(feapder.AirSpider):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.db = MysqlDB()

第二步,在 start_requests 方法中,指定爬取主链接地址,使用关键字「download_midware 」配置随机 UA

import feapder
from fake_useragent import UserAgent

def start_requests(self):
    yield feapder.Request("https://tophub.today/", download_midware=self.download_midware)

def download_midware(self, request):
    # 随机UA
    # 依赖:pip3 install fake_useragent
    ua = UserAgent().random
    request.headers = {'User-Agent': ua}
    return request

第三步,爬取首页标题、链接地址

使用 feapder 内置方法 xpath 去解析数据即可

def parse(self, request, response):
    # print(response.text)
    card_elements = response.xpath('//div[@class="cc-cd"]')

    # 过滤出对应的卡片元素【什么值得买】
    buy_good_element = [card_element for card_element in card_elements if
                        card_element.xpath('.//div[@class="cc-cd-is"]//span/text()').extract_first() == '什么值得买'][0]

    # 获取内部文章标题及地址
    a_elements = buy_good_element.xpath('.//div[@class="cc-cd-cb nano"]//a')

    for a_element in a_elements:
        # 标题和链接
        title = a_element.xpath('.//span[@class="t"]/text()').extract_first()
        href = a_element.xpath('.//@href').extract_first()

        # 再次下发新任务,并带上文章标题
        yield feapder.Request(href, download_midware=self.download_midware, callback=self.parser_detail_page,
                              title=title)

第四步,爬取详情页面数据

上一步下发新的任务,通过关键字「 callback 」指定回调函数,最后在 parser_detail_page 中对详情页面进行数据解析

def parser_detail_page(self, request, response):
    """
    解析文章详情数据
    :param request:
    :param response:
    :return:
    """
    title = request.title

    url = request.url

    # 解析文章详情页面,获取点赞、收藏、评论数目及作者名称
    author = response.xpath('//a[@class="author-title"]/text()').extract_first().strip()

    print("作者:", author, '文章标题:', title, "地址:", url)

    desc_elements = response.xpath('//span[@class="xilie"]/span')

    print("desc数目:", len(desc_elements))

    # 点赞
    like_count = int(re.findall('\\d+', desc_elements[1].xpath('./text()').extract_first())[0])
    # 收藏
    collection_count = int(re.findall('\\d+', desc_elements[2].xpath('./text()').extract_first())[0])
    # 评论
    comment_count = int(re.findall('\\d+', desc_elements[3].xpath('./text()').extract_first())[0])

    print("点赞:", like_count, "收藏:", collection_count, "评论:", comment_count)

数据入库

使用上面实例化的数据库对象执行 SQL,将数据插入到数据库中即可

# 插入数据库
sql = "INSERT INTO topic(title,auth,like_count,collection,comment) values('%s','%s','%s','%d','%d')" % (
title, author, like_count, collection_count, comment_count)

# 执行
self.db.execute(sql)

 最后

本篇文章通过一个简单的实例,聊到了 feapder 中最简单的爬虫 AirSpider

若需要相关爬虫资料的可以扫一扫 备注【爬虫】

以上是关于学1个月爬虫就月赚6000?告诉你爬虫的真实情况!的主要内容,如果未能解决你的问题,请参考以下文章

学1个月爬虫就月赚6000?别被骗了,老师傅告诉你爬虫的真实情况!

学1个月爬虫就月赚6000?别被骗了,老师傅告诉你爬虫的真实情况

业余学Python是如何挣钱的。在闲余时间月赚3k~5k

业余学Python是如何挣钱的。在闲余时间月赚3k~5k

清华学霸告诉你一款能取代 Scrapy 的爬虫框架 feapder

python 爬虫自学要多久