爬虫经验

最近实习写了两个爬虫,使用的工具是requests , bs4, selenium + PhantomJS, 这里写一些总结。
1.ajax
通常可以通过分析js文件,找到数据接口,可以直接获取到数据

2.正则表达式re
获取到的json数据格式为:jQuery1910981251106322391_1517453911085({…})就需要用正则表达式来解析数据

3.验证码识别
最普通的思路为:分割图片,灰度二值化转为黑白,与预留图片计算向量
参考:https://www.shiyanlou.com/courses/364

4.登录 session
requests库有Session对象,会在同一个 Session 实例发出的所有请求之间保持 cookie

5.浏览器渲染,使用selenium + PhantomJS,
注意selenium版本要大于2,小于3,因为3以上不支持PhantomJS,PhantomJS安装最好采用源码安装,apt-get得到的版本功能并不全

6.断点重续
断点通常是因为网络请求失败,失败的原因通常为以下几种:
(1)超时
(2)连接太多
(3)selenium
超时通常是因为在requests设置了timeout,
连接太多可以在headers中指定connection:close,
selenium请求出错暂时原因未知。

考虑使用这样的代码:

html = ''
while html == '':
    try:
        html = requests.get('')
    except Exception:
        html = ''
        continue

7.动态IP
有些网站会封IP,需要使用代理,建议可以使用阿布云的代理,使用过感觉还可以,价格略贵,接入可以看接入指南。

8.多线程同步问题
多线程同时读写Excel,会出现乱序问题,可以考虑这样处理,先让多线程将获取到的数据序列化为pkl文件,达到100条后,然后再由另一线程写入到Excel表中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值