当前位置: 首页 > 后端技术 > Python

Python入门技巧

时间:2023-03-26 18:13:54 Python

《java从芯》正式更名为《KENDOEVERTHING》。Ken(Can)DoEverything,无所不能相信你自己,你就能做到一切!我也是刚踏入python的大门,所以只能给一些建议,不能指导(暂时只接触python爬虫)入门3步1.语法学习,推荐看菜鸟教程https上的python3语法://www.runoob.com/python...有其他语言基础的人其实可以随便过一遍,因为python语法很简单,不看语法也能直接看懂。如果你真的不明白,回去检查一下。效果可能会更好。2.视频学习,推荐廖老师的python爬虫实战课。公众号后台发送【python爬虫】不要光看就得,看完相关视频,自己动手做才有收获!3、实际项目,找几个自己想爬的网站,学以致用,开始动手吧!当时实战遇到动态js生成的页面,无法直接从response中获取数据,所以用到了selenium框架。注意几点:1、不要把selenium集成到scrapy中(可能是拙见,有误请指正)因为Scrapy中Spirder的parse方法是单线程的,responseparse处理的时候是一个queuestring是的,如果用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.爬虫程序不是永久可用的。不管是分析页面还是分析抓取响应,都是别人的事。如果网站更改,您的程序将不可用。如果接手爬虫项目,必须提前告知客户。好的,我明白这一点,我已经把这一切都告诉你了。开始你的蟒蛇之旅吧。文章首发于公众号【KENDOEVERTHING】本公众号专注于java相关技术,但不局限于java、mysql、python、面试技巧、生活感悟等。分享优质博文,技术干货、学习资源等优质内容。欢迎关注,共同学习,共同成长!