Python入门小建议
"java从心"正式更名"KEN DO EVERTHING"。Ken(Can) Do Everything,无所不能
Believe youseft then you can do everthing !
我也是刚踏入python的大门,所以只能给点小建议,而不是指导(暂时只接触了python爬虫)
入门3部曲
1.语法学习,推荐可以看菜鸟教程上的python3语法
https://www.runoob.com/python3/python3-tutorial.html
有其他语言基础的人,其实可以随便过一遍,因为python语法很简单,不看语法也能直接看懂,实在不懂的时候再返回去查,效果可能会更好
2.视频学习,推荐廖老师python爬虫实战课程。
公众号后台发送【python爬虫】获取
千万别只看,看完相关视频得自己动手实战才会有收获!
3.实战项目,找几个自己想爬取的网站,试着用自己学到的东西,开始瞎搞吧!
当时实战遇到都是动态js生成的页面,没法直接从response获取数据,所以使用了selenium框架。
说几点需要注意的地方
1.别将selenium集成到scrapy上使用(可能是拙见,如有错误务必纠正我)
因为Scrapy中Spirder的parse方法是单线程的,response交由parse处理时是队列串行的,使用selenium就不能同时打开多个浏览器爬取了,selenium本来就够慢了,所以别将selenium集成到scrapy。可以单独使用selenium然后开启多线程去爬取,会快很多。
(后面我才发现,原来scrapy也有爬取动态网页的库scrapy-splash!)。不过由于selenium出现的比较早,使用scrapy-splash的人会比selenium的少)
2.不要用time.sleep去等待页面加载
因为你根本不知道它真实加载时间是多久,设置多了就浪费时间,少了可能网页还没加载不出来。
对于selenium框架,推荐使用
WebDriverWait(driver, 10).until(特定元素),设置一个时间,等待出现某个特定元素,未出现则会抛出超时异常。然后可以加上重试操作,重试一定次数后放弃这次爬取,最简单的方式就是使用循环。
3.反爬
发现爬取程序出了问题,无法爬取数据,可以考虑下,是不是网站使用了一些反爬策略,这时就需要使用对应的反反爬方法去应对了
主要反爬策略有下面几种:
①判断User-Agent,是否为浏览器;
②判断短时间内同一个IP访问次数;
③用户登录后才能访问资源;
④短时间用户使用不同IP访问资源,异常登录;
⑤验证码,滑动点击验证;
⑥数据加解密处理;
对于不同反爬策略,可以使用不同应对方式:
①User-Agent:发起请求时候添加头信息,伪装浏览器;
②短时间内访问次数限制:可以使用代理或者延时爬取;
③登录后访问:模拟登录保存cookie,请求时添加cookie信息;
④异常登录:准备大量账号,绑定不同代理进行爬取;
⑤验证码:使用对应python库进行处理,github上面可以找到;
⑥数据加解密处理:使用对应算法进行破解,或者使用selenium进行抓取;
4.代码中需考虑所爬取网站的稳定性
网站可能会出现以下几种情况
1.所爬取网站性能很差,页面有时响应很慢
2.有时网站直接崩掉
3.处于维护状态
代码中必须考虑这些情况的出现,写对应的异常与处理逻辑,否则爬虫程序会崩掉或卡住
5.爬虫程序不是永久可用的
不管是分析页面还是解析response的爬取,都是别人东西,万一网站有所改动,你的程序就不可用了。 如果你接了爬虫项目,这一点必须提前告知客户
好叻,我就懂这么一点,都告诉你了。
去开启你的python之旅吧
文章首发于公众号【KEN DO EVERTHING】
本公众号专注于java相关技术,但不限于java、mysql、python、面试技巧、生活感悟等。分享优质博文,技术干货,学习资源等优质内容。
欢迎关注,一起学习,共成长!
Python入门小建议的更多相关文章
- 简述Python入门小知识
如今的Python开发工程师很受企业和朋友们的青睐,现在学习Python开发的小伙伴也很多,本篇文章就和大家探讨一下Python入门小知识都有哪些. 扣丁学堂简述Python入门小知识Python培训 ...
- Python入门小练习
Python入门小练习 001 备份文件 Python入门小练习 002 批量下载网页链接中的图片 Python入门小练习 003 利用cookielib模拟登录获取账户信息
- 40个Python入门小程序
有不少同学学完Python后仍然很难将其灵活运用.我整理 37 个Python入门的小程序.在实践中应用Python会有事半功倍的效果. 分享 Github 项目,里面收集了 Python 学习资料 ...
- Python 入门小实例笔记
实例1:打印用户输入的姓名与手机号码知识点:编码,获取输入,变量,标准输出 #encoding=utf-8 import time #1.提示用户输入信息 name = input ("请输 ...
- Python入门小练习-001-备份文件
练习适用于LINUX,类Unix系统,一步一个脚印提高Python . 001. 类Unix系统中用zip命令将文件压缩备份至 /temporary/ 目录下: import os import ti ...
- Python入门小练习 002 批量下载网页链接中的图片
我们常常需要下载网页上很多喜欢的图片,但是面对几十甚至上百张的图片,一个一个去另存为肯定是个很差的体验. 我们可以用urllib包获取html的源码,再以正则表达式把匹配的图片链接放入一个list中, ...
- Python入门小练习 003 利用cookielib模拟登录获取账户信息
为了方便, 使用chinaunix的账户获取账户主题. 有些网站可能需要验证码, 找一些不用验证码的网站 下面 ****** 很多个星号的均为私密信息, 所以用星号代替 #!/usr/bin/pyt ...
- Python 入门之代码块、小数据池 与 深浅拷贝
Python 入门之代码块.小数据池 与 深浅拷贝 1.代码块 (1)一个py文件,一个函数,一个模块,终端中的每一行都是代码块 (代码块是防止我们频繁的开空间降低效率设计的,当我们定一个变量需要开辟 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
随机推荐
- 两种方法,轻松上手ConfigMap!
属性配置文件在任何应用程序中都非常重要.它们不仅可以让应用程序具备灵活性,还能够根据文件中配置的值产生不同的功能.实际上,在staging.开发.测试.UAT或生产环境中,我们都使用属性配置文件来驱动 ...
- 2018-8-10-C#-6.0-字符串-String-Interpolation
title author date CreateTime categories C# 6.0 字符串 String Interpolation lindexi 2018-08-10 19:16:52 ...
- python类中的一些神奇方法
__str__:用于在print(对象)时,直接打印__str__的返回值 class Animal: def __init__(self, name): self.name = name def _ ...
- 使用Miniconda安装Scrapy遇到的坑
最近在看小甲鱼的书,学习学习爬虫,其中有一块是通过Miniconda3安装Scrapy,结果却遇到了下面的错误:fatal error in launcher:unable to create pro ...
- 软RAID和硬RAID的区别
要实现RAID可以分为硬件实现和软件实现两种.所谓硬RAID就是指通过硬件实现,同理软件实现就作为软RAID. 硬RAID 就是用专门的RAID控制器将硬盘和电脑连接起来,RAID控制器负责将所有 ...
- 聊一聊 MySQL 中的事务及其实现原理
说到数据库,那就一定会聊到事务,事务也是面试中常问的问题,我们先来一个面试场景: 面试官:"事务的四大特性是什么?" 我:"ACID,即原子性(Atomicity).隔离 ...
- leetcode.769旋转字符串
给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转操作之后,A 能变成B ...
- 【Spring Cloud 源码解读】之 【如何配置好OpenFeign的各种超时时间!】
关于Feign的超时详解: 在Spring Cloud微服务架构中,大部分公司都是利用Open Feign进行服务间的调用,而比较简单的业务使用默认配置是不会有多大问题的,但是如果是业务比较复杂,服务 ...
- HDU3652 B-number 题解 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3652 题目大意: 求区间 \([1, n]\) 范围内包含连续的数位"13"并且能 ...
- 从0开发3D引擎(三):搭建开发环境
本系列使用Reason语言,因此需要搭建它的开发环境. 上一篇博文 从0开发3D引擎(二):准备预备知识 搭建开发环境 建议使用VSCode编辑器来开发Reason,因为它的插件支持得最好. 具体搭建 ...