爬虫杂记

1.你用过的爬虫框架或者模块有哪些?优缺点?
Python自带:urllib,urllib2
第三方:requests
框架: Scrapy

urllib 和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能。
urllib2: urllib2.urlopen可以接受一个Request对象或者url,(在接受Request对象时,并以此可以来设置一个URL的headers),urllib.urlopen只接收一个url。
urllib 有urlencode,urllib2没有,因此总是urllib, urllib2常会一起使用的原因

requests是一个HTTP库,它只是用来请求,它是一个强大的库,下载,解析全部自己处理,灵活性高。

scrapy是封装起来的框架,他包含了下载器,解析器,日志及异常处理,基于多线程,twisted的方式处理,对于固定单个网站的爬取开发,有优势,但是对于多网站爬取100个网站,并发及分布式处理不够灵活,不便调整与扩展。
Scrapy优点:异步,xpath,强大的统计和log系统,支持不同url。shell方便独立调试。写middleware方便过滤。通过管道存入数据库。

其他常见问题:
163.写爬虫是用多进程好?还是多线程好?
164.常见的反爬虫和应对方法?
165.解析网页的解析器使用最多的是哪几个?
166.需要登录的网页,如何解决同时限制ip,cookie,session
167.验证码的解决?
168.使用最多的数据库,对他们的理解?
169.编写过哪些爬虫中间件?
170.“极验”滑动验证码如何破解?
171.爬虫多久爬一次,爬下来的数据是怎么存储?
172.cookie过期的处理问题?
173.动态加载又对及时性要求很高怎么处理?
174.HTTPS有什么优点和缺点?
175.HTTPS是如何实现安全传输数据的?
176.TTL,MSL,RTT各是什么?
177.谈一谈你对Selenium和PhantomJS了解
178.平常怎么使用代理的 ?
179.存放在数据库(redis、mysql等)。
180.怎么监控爬虫的状态?
181.描述下scrapy框架运行的机制?
182.谈谈你对Scrapy的理解?
183.怎么样让 scrapy 框架发送一个 post 请求(具体写出来)
184.怎么监控爬虫的状态 ?
185.怎么判断网站是否更新?
186.图片、视频爬取怎么绕过防盗连接
187.你爬出来的数据量大概有多大?大概多长时间爬一次?
188.用什么数据库存爬下来的数据?部署是你做的吗?怎么部署?
189.增量爬取
190.爬取下来的数据如何去重,说一下scrapy的具体的算法依据。
191.Scrapy的优缺点?
192.怎么设置爬取深度?
193.scrapy和scrapy-redis有什么区别?为什么选择redis数据库?
194.分布式爬虫主要解决什么问题?
195.什么是分布式存储?
196.你所知道的分布式爬虫方案有哪些?
197.scrapy-redis,有做过其他的分布式爬虫吗?

常见的反爬机制及处理方式:

  1. Headers反爬虫 :Cookie、Referer、User-Agent
    解决方案: 通过F12获取headers,传给requests.get()方法
  2. IP限制 :网站根据IP地址访问频率进行反爬,短时间内进制IP访问。
    解决方案:
   a、构造自己IP代理池,每次访问随机选择代理,经常更新代理池
   b、购买开放代理或私密代理IP
   c、降低爬取的速度
  1. 对查询参数或Form表单数据认证(salt、sign)
    解决方案: 找到JS文件,分析JS处理方法,用Python按同样方式处理

动态加载数据抓取-Ajax:

1.特点:
查看网页源码中找不到具体数据
滚动鼠标滑轮或其他动作时加载

2.抓取:

  1. F12打开控制台,选择XHR异步加载数据包,找到页面动作抓取网络数据包
  2. 通过XHR–>Header–>General–>Request URL,获取json文件URL地址
  3. 通过XHR–>Header–>Query String Parameters(查询参数)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值