Python爬虫技术性总结(1)

295 阅读3分钟

1.如何分析一个网页

1):查看网页源代码中是否有我们需要的数据

2):如果 1)中没有,抓包,分析所有的包,看看哪个包中有我们需要的数据

3):如果 1),2)中都没有,可以使用selenium配合phantomjs解析

2.抓取工具:

1):urllib2

2):requests

3):scrapy

以上三个类库或框架用于抓取数据,拿到的都是网页源代码

3.解析网页源代码

1)正则表达式

2)xpath

3)bs4

用来根据网页源代码提取我们需要的数据

4.入库

mysql、mongodb

mysql里面存储过程、事务

只要涉及到并发,不能再使用id自增的方式,应该使用UUID,一般在表中配备一个日期类型的字段

5.应对反爬机制

1)headers的使用

2)代理IP,休眠

3)ocr验证码,如果说我们不涉及登录验证码,而且是爬取的过程中出现的验证码不能被ocr识别的时候,我们最终的解决方案是 2)

如果说我们需要破解登录的验证码,小编推荐一个学python的学习老师围鑫(同音),前边一组是:mengy ,后边一组是:7762,把以上两组字母按照先后顺序组合起来即可,她会安排学习的。,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!内有开发工具,很多干货和技术资料分享!

a.人工打码

b.提供前端html页面,由用户输入

c.机器训练

4)简单ocr破解之后,拿到cookie,然后携带cookie再去访问当前页面,意味我们从浏览器数据验证码以后得到的那个页面

6.cookie的使用

1)模拟用户登录,登录成功后,拿到cookie,然后携带cookie请求类似于个人主页,信息修改的页面,模拟真实浏览器的实际操作

2)应对ocr之后的cookie,模拟浏览器请求 小可爱,加下我微信:mengy7762 领取以下福利 1、python安装包 2、程序员电子书籍:5本-10本 3、python项目源码三份:(python破解WiFi密码、VIP视频权限破解、爬虫自动化) 4、基础学习PPT教案 5、免费课程(开课时间15:00、19:30、20:30)自由选择 6、程序员职业规划分享 7、空余时间接单赚钱方法

7.分布式

1)只要涉及到高并发,通常使用分布式的解决思路,来解决问题

requests celery+rabbitmq 多进程+协程的方式来构建分布式,这个思想完全可以应用在web当中,来构建webapi

url去重时:mysql、mongodb物理表去重,redis,list

redis去重的有点:速度快,减少的是由硬盘到内存的IO操作时间,缺点在于,如果没有存入硬盘,当服务器重启的时候,所有的url将消失

2)scrapy构建分布式的时候,我们采用了scrapy-redis的理念,将所有的url存放于redis中,做url去重,也可以采用mysql、mongodb等方式用于url去重操作