1.遇到过得反爬虫策略以及解决方法?
1.通过headers反爬虫
2.基于用户行为的发爬虫:(同一IP短时间内访问的频率)
3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成)
4.对部分数据进行加密处理的(数据是乱码)
解决方法:
对于基本网页的抓取可以自定义headers,添加headers的数据
使用多个代理ip进行抓取或者设置抓取的频率降低一些,
动态网页的可以使用selenium + phantomjs 进行抓取
对部分数据进行加密的,可以使用selenium进行截图,使用python自带的pytesseract库进行识别,但是比较慢最直接的方法是找到加密的方法进行逆向推理。
2.urllib 和 urllib2 的区别?
urllib 和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。urllib不可以伪装你的User-Agent字符串。
urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。
3. 列举网络爬虫所用到的网络数据包,解析包?
网络数据包 urllib、urllib2、requests
解析包 re、xpath、beautiful soup、lxml
4. 简述一下爬虫的步骤?
确定需求;
确定资源;
通过url获取网站的返回数据;
定位数据;
存储数据。
5. 遇到反爬机制怎么处理?
反爬机制:
headers方向
判断User-Agent、判断Referer、判断Cookie。
将浏览器的headers信息全部添加进去
注意:Accept-Encoding;gzip,deflate需要注释掉
为了可以给大家提出更多的学习建议,这是我建立的Python学习qun:前226,中间的是745,后面三个数是469。都是自学成功并且成功就业的,在彼此的沟通可以我们可以得到很多学习经验,学习始终靠自己,当你掌握了一个好的学习方法,系统的学习方式,你会发现其实学习Python并没有那么难,有问题在qun里随时问我,qun内含有不少的资学xi资料,且工作不忙的时候帮助大家解答问题。