Python爬虫学了几个月却不敢接单?过来人的经验总结收好!

2023-10-30

前几天有刷到一个提问:爬虫学了几个月了却还是不敢上手去接单,爬虫接单靠不靠谱?有些新手心里会犯嘀咕,怕不小心就踩了红线。作为过来人也接过不少单,来浅聊一下我的经验。

这篇所说的经验总结可能更适合爬虫新手,爬虫大佬可以忽略。

此篇小结

  • Python爬虫学到怎么样可以接单?
  • 可爬与不可爬的问题
  • 哪里接单?
  • 什么单不接?
  • 注意事项

一、Python爬虫学到怎么样可以接单?

1)基础简单回顾

想要上手爬虫,基本知识和工具的熟练使用是必须要具备的;

首先Python的一些语言基础肯定要有,爬虫大部分是用python写的,基本的语法、数据结构、函数等要熟练

比如:

  • List dict:用来序列化你爬的东西
  • 切片:用来对爬取的内容进行分割、生成
  • 条件判断(if等):用来解决爬虫过程中哪些要哪些不要的问题
  • 循环和迭代(for while):用来循环、重复爬虫动作
  • 文件读写操作:用来读取参数、保存趴下来的内容等

其次Python爬虫主要用到的库就是request库,这个库是必须要学习的,获取到的数据还需要你自行处理,通过数据筛选规则,正则表达式等等技术进行筛选。

还有就是知道如何应付反爬;现在很多网站都开发了属于自己的反爬机制,所以一些常见的反爬措施是需要学习掌握的,否则无法顺利爬取到想要的数据。

需要补充学习的部分:

  • 大致了解网络协议:HTTP/HTTPS 协议、tcp-ip协议;
  • 了解HTML 、CSS、等前端基础;
  • 理解网站的POST GET的一些相关概念,JS的一些基本内容,方便理解动态网页。

总结一下:

想要自己写一个Python爬虫程序,必须学会Python基础,包括环境安装、基础语法、字典、正则匹配、还有一些数据处理技术等等。

其次就是模拟请求的库request以及解析库的使用,还有一些反爬技术和前端基础。

2)爬虫的工作流程

简记为“爬虫四部曲”;
在这里插入图片描述
① 发起请求

使用http库向目标站点发起请求,即发送一个Request;

Request包含:请求头、请求体等;

如果只进行基本的爬虫网页抓取,urllib库足够用,Requests使用起来更简洁,自带json解析器,应付大多数的静态网页爬取问题不大。

涉及到动态网页抓取的话就要用到Selenium了,通常配合PhantomJS使用,,Selenium+PhantomJS可以抓取那些使用JS加载数据的网页。

② 获取响应内容

如果服务器能正常响应,则会得到一个Response;

Response包含:html、json、图片、视频等;

③ 解析内容

解析html数据:正则表达式、第三方解析库如Beautifulsoup、pyquery等;

解析json数据:json模块

解析二进制数据:以b的方式写入文件

个人一般情况下会用bs4,bs4无法满足就用正则。

正则一般用来满足特殊需求、以及提取其他解析器提取不到的数据,re速度比较快,但是写正则比较麻烦。

前端基础比较扎实的,用pyquery是最方便的,当然了,自己哪个用着方便就用哪个,无需纠结。

④ 保存数据

需要用到数据库;

小规模数据:可以使用txt文件、json文件、csv文件等方式来保存文件;
大规模数据:就需要使用mysql、mongodb、redis等数据库;
这步比较简单,掌握主流的数据库使用就差不多了。

1.如果是对爬虫这个领域很感兴趣的可以去听听免费的公开课,看看自己的学习天赋如何,下方大家可以微信扫描下方CSDN官方认证二维码免费领取

2.爬虫学习资料下方也有整理一部分(有视频教程,文档,写好的代码文件,以及一些爬虫所需要的软件安装包),有需要的可以下方自提

二、关于爬虫可爬与不可爬的问题

其实我们生活中几乎每天都在爬虫应用,如百度,你在百度中搜索到的内容几乎都是爬虫采集下来的,(百度自营的产品除外,如百度知道、百科等)。

网络爬虫作为一门技术,技术本身是不违法的。

但是!记住重点!也不是网站的所有内容想爬就爬!随便你爬的!
在这里插入图片描述
以下情况需要注意,爬虫有可能违法:

(1)爬虫程序规避网站经营者设置的反爬虫措施或者破解服务器防抓取措施,也就是非法获取相关信息。

(2)爬取网上公开信息不犯法,但如果大量开启爬虫导致对方服务器崩溃,这属于暴力攻击的范畴了,肯定不可以的。

(3)爬虫采集的信息属于公民个人信息,不能涉及到个人的隐私问题,如果涉及了并通过非法途径收益了,那肯定是违法行为咯。

当采集的站点有声明禁止爬虫采集或者转载商业化时:
在这里插入图片描述淘宝网的法律声明

这么明显的提示了应该不会有人想不开吧!

当网站声明了Robots 协议:

是一种存放于网站根目录下的 ASCII 编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。

Robots 协议就是告诉爬虫,哪些信息是可以爬取,哪些信息不能被爬取,严格按照 Robots 协议爬取网站相关信息一般不会出现太大问题。

如何查看采集的内容是否有Robots 协议?

方法很简单,你想查看的话就在IE上打http://你的网址/robots.txt,站长工具也可以。

比如淘宝的robots协议 (http://www.taobao.com/robots.txt)

协议里最常出现的英文是Allow和Disallow,Allow代表可以被访问,Disallow代表禁止被访问。

所以在接单的时候保持适当的严谨是有必要的,哪些单子能接,哪些不能接自己心里得有个判断和分寸。

不要为一些明显是做灰黑产的人或者公司写代码,最好的避免违法的办法就是明显觉得不太好的事情就不要去碰,不要抱侥幸心理。
在这里插入图片描述

三、如何接单

(1)怎么接单?

一般而言,对于刚刚开始接单的人而言,很难接到大单,基本上都是一些比较小的单。

但是没有关系啊,正好可以练手!

这些小单是可以提供一个很好的锻炼以及实践的机会,所以不要害怕接。

接单新手基本上接的都是网络爬虫、数据分析等这类的单,当然也可能有一些自动化运维之类的,但是都比较少。

个人做的话不太建议去抢一些几千元一个的项目,难度比较大,交付时间又紧,有些还是团对作战在抢单,这类单子要做的话难度高。

一般我们向甲方提供爬虫、数据分析、数据清洗这样的服务。

一开始也不要想着一口塞进个包子,慢慢来,等到技术提升之后可以去接一些开发之类的活,像APP开发、小程序开发都是几千的单子。
在这里插入图片描述
通过接单平台赚外快是个直接快速的方法,不同的任务需求难度不同,报酬在一两百、几千上万都有,具体能赚多少,看自己的技术水平。

接单报价方式:

简单公式:项目工时*日薪+紧急程度+报价

小tip:记得留个bug,防止不给尾款;

(2)整理的一些接单平台:

程序员客栈
在这里插入图片描述
程序员客栈中国非常领先的自由工作平台,支持按需雇佣,工作模式非常多,感兴趣的大家可以尝试一下。

码市
在这里插入图片描述
互联网软件外包服务平台,适合专门为开发者而提供的平台,接单方式是企业发布项目招募报名参与,企业方筛选合作项目分阶段结算。

猪八戒网
在这里插入图片描述
找兼职的地方,主要是入门级项目,不适合专业程序员,只适合新手。

开源众包
在这里插入图片描述
开源中国的众包平台,主要是以众包为主

猿急送
在这里插入图片描述
一品威客
在这里插入图片描述
智城外包
在这里插入图片描述
人人开发
在这里插入图片描述
现在爬虫接单的范围比较广,外包平台有很多,有兴趣的可以去尝试一下,新手接单多留个心眼。

(3)什么单不接?

接单的时候自己掂量一下,有的单不建议接,因为可能对你没有太大的好处。

加急单不接!

程序在写的时候你也不会清楚会遇到什么样的问题,可能你需要调试好久,调试也需要不少时间,最后做出来客户会不会满意也是个未知数,因此不建议接急单。

不给定金的单不接!

定金很重要,一般会要10%左右的总金额最为定金吧,可能因人而异,但是建议是需要给定金的。

私人单尽量少接!

因为风险大,正规平台的单相对安全一些,也不是说完全不要接,熟人介绍的有保障的还是可以接,只是说要谨慎,一般陌生私人的单我是不接的。

不接繁杂的单!

有些单看上去很简单,但实际上要操作的东西很多,这样的单很耗时间,但是又不会有太多的报酬,比较浪费时间。就是钱少事多,这样的单一定要了解清楚再接。

(4)注意事项

1)文明爬虫,不做违法的爬虫!(重点)

2)接单时谨慎,避免被骗!(重点)

3)价钱一定要事先谈好(搞清楚客户所说的价格是税后价格还是税前价格),然后再开始做;

4)没有金刚钻,就别揽瓷器活,接单一定要在自己能力范围内接;

5)在边学边接单的时候,要注意时间,不能按时完工的单还是不要接;

6)需求和要求一定要在做之前跟客户沟通好,了解清楚之后再做;

7)对于大项目,可以请求客户先付一部分押金,时间最好跟客户沟通一下留有时间余地,程序修改也很费时间。

8)如果客户让你报价,要适当合理的综合考虑代码复杂程度、完成所需要的时间等等多种因素;

9)好好检查你自己的代码和一些操作的算法实现的过程是不是完全正确的,千万不要犯低级的错误,否则会影响顾客对你的评价的。

读者福利:知道你对Python感兴趣,便准备了这套python学习资料

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬虫学了几个月却不敢接单?过来人的经验总结收好! 的相关文章

  • Selenium/chrome 驱动程序不断崩溃“Chrome 无法启动:正常退出”和“DevToolsActivePort 文件不存在”

    我正在尝试为 selenium chromedriver 运行我的脚本 但不断收到以下错误 硒版本 4 72 Chrome浏览器版本 版本108 0 5359 125 官方版本 64位 ChromeDriver版本 ChromeDriver
  • 我可以使用类属性作为实例方法的默认值吗?

    我想使用类属性作为我的类的参数之一的默认值 init 方法 这个构造提出了一个NameError不过 例外 我不明白为什么 class MyClass DefaultName DefaultName def init self name M
  • 如何从 BNF 生成随机程序

    我知道我的问题听起来有点模糊 但我在网上找不到任何教程 我不是在寻求答案 而是寻求更多的解释 BNF 的一个例子
  • 一个类的多个实例

    我正在尝试用 python 编写各种动物的生活模拟 不可能命名我将要使用的类的每个实例 因为我无法知道会有多少个实例 所以 我的问题是 如何自动为对象命名 我正在考虑创建一个 Herd 类 它可以是该类型的所有动物同时存活 嗯 通常 您只需
  • Keras 的 ImageDataGenerator 是否随机对每个图像应用转换?

    我正在使用 Keras ImageDataGenerator 类训练 CNN 我的代码看起来像这样 from keras callbacks import LearningRateScheduler from keras callbacks
  • 如何从 gridsearchcv 绘制决策树?

    我试图绘制由 GridSearchCV 形成的决策树 但它给了我一个属性错误 AttributeError GridSearchCV object has no attribute n features 但是 如果我尝试在没有 GridSe
  • 在 scipy 中按稀疏矩阵分组并返回一个矩阵

    关于使用 SO 处理有几个问题groupby与稀疏矩阵 然而输出似乎是列表 字典 https stackoverflow com questions 35410839 group by on scipy sparse matrix 数据框
  • 以编程方式使用的免费单词列表? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 执行时忽略字符串列

    我使用以下代码来标准化 pandas DataFrame df norm df df mean df max df min 当所有列都是数字时 此方法效果很好 但是 现在我有一些字符串列df并且上述标准化有错误 有没有办法只对数据帧的数字列
  • 调整 MLPRegressor 超参数

    我一直在尝试调整 MLP 模型的超参数来解决回归问题 但总是收到收敛警告 这是我的代码 def mlp model X Y estimator MLPRegressor param grid hidden layer sizes 50 50
  • 姜戈 - 信号。简单的例子开始

    我是 Django 新手 无法理解如何使用 Django 信号 谁能解释一下 Django 信号 用简单的例子 提前致谢 通过做一些很小的研究 你可以在互联网上找到关于 django 信号的非常好的内容 在这里我将向您简要介绍 Django
  • 如何在条形图上添加值标签

    我正在创建一个条形图 但我不知道如何在条形图上添加值标签 在条形图的中心或正上方 我相信解决方案是使用 文本 或 注释 但我 a 不知道该使用哪一个 一般来说 还没有弄清楚何时使用哪一个 b 无法看到任何一个来呈现值标签 这是我的代码 im
  • python中带括号和不带括号调用函数有什么区别? [复制]

    这个问题在这里已经有答案了 我有个问题 假设我们有函数 hello 带括号和不带括号调用有什么区别 当我调用 hello 时 它引用的是一个值等于此函数的对象 或者也许我错了 当我不带括号调用它时会发生什么 我想知道为什么 def hell
  • matplotlib中有制作散点图矩阵的函数吗?

    散点图矩阵示例 matplotlib pyplot中有这样的函数吗 对于那些不想定义自己的函数的人来说 Python 中有一个很棒的数据分析库 称为Pandas http pandas pydata org 在那里可以找到分散矩阵 http
  • 激活虚拟环境不起作用

    我创建了两个 virtualenv 并安装了两个不同版本的 django 现在我在激活两个环境时遇到问题 我喜欢这样 source Django1 6 bin activate 然后我看到环境被激活了 然后我这样做 pip install
  • 使用 pip freeze 安装 numpy

    I need to install Numpy version 1 17 1 but every time it just freezes I have now tried multiple times and I have been wa
  • 从 C# 运行多个 python 脚本

    我希望有人能够在这里帮助我 我对 C 比较陌生 正在尝试执行我在 C winform 应用程序中编写的一些 Python 代码 我想做的是从 winform 中的文本框中输入名称 并让它通过 python 脚本进行处理 并在 winform
  • 无法在 BeautifulSoup 中获得正确的链接

    我正在尝试解析一些 HTML 并且想提取与特定模式匹配的链接 我正在使用find使用正则表达式的方法 但它没有给我正确的链接 这是我的片段 有人可以告诉我我做错了什么吗 from BeautifulSoup import Beautiful
  • 查找框和裁剪图像的角点

    Hey Guys I am working with numpy and opencv and want to get a image cropped by the contours of it Here is one example wh
  • 多处理冻结计算机

    我通过使用多处理提高了执行时间 但我不确定 PC 的行为是否正确 它会冻结系统 直到所有进程完成 我使用的是 Windows 7 和 Python 2 7 也许我做错了 这就是我所做的 def do big calculation sub

随机推荐

  • 3DsMax次级菜单无法选中---简单方法

    在桌面新建文本文档 将下列代码赋值到文本文档中 Ctrl S保存代码 然后改扩展名为 reg 最后双击导入就完美解决了 Win10系统代码 Windows Registry Editor Version 5 00 HKEY CURRENT
  • mybatis查询当年的数据、查询当天的数据、查询当年每个月的数据

    mybatis查询当年 当天的数据 查询当年每个月的数据 最近遇到公司的需求 查询一个表里面当年的数据和当年每个月的数据 测试数据表如下 很显然我们要对time字段进行操作 查询当天的数据 我们可以在where后面这么写 AND TO DA
  • windows建立隐藏用户及查找隐藏用户

    建立隐藏用户 1 cmd gt net user 用户名 密码 add hint cmd gt net localgroup administrators 用户名 add 将用户添加进管理员组 2 cmd gt regedit 路径 HKE
  • ty计算机网络背诵简答题满分冲刺版!

    ty计算机网络背诵简答题满分冲刺版 ty 2023 名词解释 记忆中文名称即可 缩写 全称 解释 DNS 域名系统 用于将域名转换为IP地址的分布式数据库系统 URL 统一资源定位符 用于标识互联网上资源位置的地址 IGP 内部网关协议 用
  • 什么时候要有拷贝构造函数?

    1 构造对象 时 用已实例化的对象进行构造 int main Student a 10 2 Student b a 拷贝构造 并且要特别注意指针数据成员的赋值 避免出现野指针的情况 2 返回临时对象 而不是返回对象的引用 rmb opera
  • 如何使用代理IP池进行爬虫工作

    要使用代理IP池进行爬虫 需要先将代理IP池集成到爬虫代码中 并在需要访问目标网站时随机选取代理IP进行访问 简单的步骤如下 1 导入代理IP池模块 将代理IP池的模块集成到你的爬虫代码中 通常情况下 代理IP池提供了一些API接口 可以通
  • Android中常用的adb shell命令

    注意事项 这里写的命令 网页可能会重新编辑格式 比如我写了两个减号 发布后变成了一个减号 如果这里的命令不能正确执行 请手动输入命令 切记切换英文状态 android 常用shell命令记录下来备忘 n 在shell命令中的作用是换行 而
  • 8.Spring EL与ExpressionParser

    Spring EL与ExpressionParser 文章目录 Spring EL与ExpressionParser 介绍 使用SpEL来计算评估文字字符串表达式 使用SpEL来计算评估 bean 属性 item name 介绍 Sprin
  • 原生js实现水印背景

    参考文档 https juejin cn post 6844904095749242888 1 通过canvas生成水印图片 2 把图片作为div的背景让其平铺 const setWatermark gt let canvas docume
  • Java线程池ThreadPoolExecutor-终止线程池原理

    一 终止线程池主要有两个方法 shutdown 和 shutdownNow shutdown 后线程池将变成shutdown状态 此时不接收新任务 但会处理完正在运行的 和 在阻塞队列中等待处理的任务 shutdownNow 后线程池将变成
  • ArcPy操作shp格式文件

    目录 ArcPy操作shp格式文件 shp文件介绍 创建shp 编辑shp 编辑列 字段 插入列 编辑行 记录 主要涉及的对象 arcpy Cursor 游标 对象 arcpy Row对象 arcpy Array对象 插入行 删除行 更新行
  • java中double转String如何去掉整数结尾的小数位“.0“

    可以使用Java中的DecimalFormat类 设置格式化模式来实现将double转为String 去掉整数结尾的小数位 0 以下是示例代码 double d 1234 0 DecimalFormat df new DecimalForm
  • linux 新建用户、用户组 以及为新用户分配权限

    一 Linux系统用户账号的管理 用户账号的管理工作主要涉及到用户账号的添加 修改和删除 添加用户账号就是在系统中创建一个新账号 然后为新账号分配用户号 用户组 主目录和登录Shell等资源 刚添加的账号是被锁定的 无法使用 1 添加新的用
  • C++性能优化系列——矩阵转置(八)IPP转置API性能测试

    本篇记录Intel 高性能计算函数库IPP中的转置函数ippiTranspose 8u C1R的执行情况 方便性能优化系列篇中转置实现做性能对比 函数说明 解释来自IPP2018发布文档 Intel Integrated Performan
  • Linux报错:-bash: 路径xx: No such file or directory解决方法

    为什么80 的码农都做不了架构师 gt gt gt 问题 出现这个错误 bash 路径xx No such file or directory除了cd能用外 所有linux命令都不能用 一般导致问题原因是etc profile配置文件出错导
  • 有趣的Hack-A-Sat黑掉卫星挑战赛——被破坏的阿波罗计算机(解法一)

    国家太空安全是国家安全在空间领域的表现 随着太空技术在政治 经济 军事 文化等各个领域的应用不断增加 太空已经成为国家赖以生存与发展的命脉之一 凝聚着巨大的国家利益 太空安全的重要性日益凸显 1 而在信息化时代 太空安全与信息安全紧密地结合
  • 【linux学习记笔】以war包安装部署Jenkins

    Jenkins的安装方法很多 这篇文章记录了个人学习使用war方式安装方式 一 安装准备 安装之前要先配置好JDK 配置方法在这里就不详细说明了 二 进入Jenkins官网下载war包 Jenkins官网 https www jenkins
  • 使用百度地图API出错

    在使用百度地图API做地理定位的时候 从拾取坐标系系统获取的坐标 其经纬度是反的 所以直接复制过去的时候 显示不出来地图的全景图 使用时记得交换位置
  • c#用Gnuplot画图源码

    直接调用这个类即可 需要下载个GnuPlot安装下 Author Leonardo Tazzini using System using System Diagnostics using System Drawing using Syste
  • Python爬虫学了几个月却不敢接单?过来人的经验总结收好!

    前几天有刷到一个提问 爬虫学了几个月了却还是不敢上手去接单 爬虫接单靠不靠谱 有些新手心里会犯嘀咕 怕不小心就踩了红线 作为过来人也接过不少单 来浅聊一下我的经验 这篇所说的经验总结可能更适合爬虫新手 爬虫大佬可以忽略 此篇小结 Pytho