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、面试技巧、生活感悟等。分享优质博文,技术干货,学习资源等优质内容。
欢迎关注,一起学习,共成长!

原文地址:https://www.cnblogs.com/KEN-DO-EVERTHING/p/12238657.html

时间: 2024-09-29 19:43:09

Python入门小建议的相关文章

python入门小程序2

1.猜年龄 age_of_princal=78 guess_age =int(input(">>:")) if guess_age == age_of_princal: print("you are right") 2.猜年龄加强版 age_of_princal=78 guess_age =int(input(">>:")) if guess_age == age_of_princal: print("you a

Python入门小程序1

学习了FishC的Python零基础入门第4节,本次的内容是Python的while循环语句和条件语句. 1. 用一个条件语句实现猜数字的小程序 程序设定一个数字,用户输入一个数字,判断是否猜对. temp=input("猜猜我心中的数字:") guess=int(temp) if guess==8: print("猜对!") else: print("猜错了!") print("游戏结束!") 2. 改进程序1 上一个程序中

Python入门小程序(一)

学习了FishC的Python零基础入门第4节,本次的内容是Python的while循环语句和条件语句. 1. 用一个条件语句实现猜数字的小程序 程序设定一个数字,用户输入一个数字,判断是否猜对. temp=input("猜猜我心中的数字:") guess=int(temp) if guess==8: print("猜对!") else: print("猜错了!") print("游戏结束!") ###运行结果: 2. 改进程

初学Python的小建议

1.我希望在一些基础的语法知识学会后,我们的课程能够在以下方面多进行讲解: A.             Python在当今社会的应用领域.让我们多了解一些21世纪Python. B.              Python在大数据处理与分析上面的应用.(本人专业学习方面). C.              Python与我们生活的关系,在生活上的应用. 2. 课程给我带来的基本的技能: Python语法的基本使用. Python好玩的实例及应用. 3. 理论课.实验课的上法 理论课侧重于知识的

Python入门小练习 003 利用cookielib模拟登录获取账户信息

为了方便, 使用chinaunix的账户获取账户主题. 有些网站可能需要验证码,  找一些不用验证码的网站 下面 ****** 很多个星号的均为私密信息, 所以用星号代替 #!/usr/bin/python # -*- encoding:utf-8 -*- import urllib import urllib2 import cookielib import re import chardet #判断字符串编码的包,用法为 charset.detect(str) 详细示例 http://www

Python入门小练习 002 批量下载网页链接中的图片

我们常常需要下载网页上很多喜欢的图片,但是面对几十甚至上百张的图片,一个一个去另存为肯定是个很差的体验. 我们可以用urllib包获取html的源码,再以正则表达式把匹配的图片链接放入一个list中,使用for循环来依次下载list中的链接. import re import urllib a = raw_input("Please input a URL: ") s = urllib.urlopen(a) s2 = s.read() def image(s2): reg = r'sr

python入门小知识2

if语句小程序示例 1. user_name = "wang"password = 123inp_user_name = input(">>:")inp_password = int(input (">>:"))if inp_user_name == user_name and inp_password == password:    print("pass")else:    print("

Python入门小程序

1.Python2进入中文模式 #!-*- coding:utf-8 -*-  或者 #coding:utf-8 2.关于注释:单行注释即:#print 在之前加#     多行注释即:开头三个单引号  结尾三个单引号  '''      '' 3.关于转换问题:因为input接受的所有都会字符串所有需要str和int进行转换.str(被转出数据)转化为字符串输出   int(被转入数据)用户需要输入' 在使用过程中如果链接符号使用+则需要int和str   如果是逗号链接,则每个部分独立,不需

小猿圈平台如何带小白学习python入门视频教程

Python开发技术近年来非常火热,尤其是在一线城市对于python开发人才需求一直扩大.很多企业对于python开发技术人才不惜重金招募.所以学习Python技术的人越来越多,初学Python开发技术的小伙伴对Python不是很了解,不知道Python技术好不好学,更不知道自己能否学好Python开发,本篇文章小编就和大家分享一下小猿圈平台如何带小白学习python入门视频教程? 小猿圈平台如何带小白学习python入门视频教程: 我们先来了解一下Python的学习路线,Python入门课程第