爬虫系列二:十天爬虫实战入门第一天——爬虫介绍及爬虫的HTTP基础知识(一)

一.什么是网络爬虫?

爬虫涉及到几个方面的知识:

1.编写代码基础能力(系列一的课程)

2.HTTP/HTTPS的基础知识

3.xpath/beatifulSoup等解析网页内容

4.re正则表达式

5.数据库mysql基础学习

6.网页基本结构

7.涉及到数据清洗(NLP自然语言处理,一些简单算法设计——比如simhash进行文章去重)

 

二.爬虫和反爬虫的持续战斗

有爬虫,就有反爬虫

爬虫工程师(我们),反爬(网络管理人员)之间的持续战斗:

小白,他学习了怎么写爬虫,于是访问一个网站,1秒访问1000次;

小黑(网管)发现有个明显的爬虫,访问的User-Agent是python3,直接封掉;

小白发现爬虫被封,知道UA没写,接下来访问带上UA,1秒访问1000次;

小黑(网管)发现ip1秒访问1000次,好像是机器在操作,封掉ip;

小白发现ip被封,然后使用ip代理,继续访问;

小黑(网管)发现网站流量还是扛不住,应该有很多可恶的爬虫,增加部分关键数据的登陆访问;

小白发现需要登陆才能访问,那么多申请一些账号,搞一个账号池(cookie池),继续访问网站;

小黑(网管)发现网站流量还是扛不住,我加一个验证码;

小白发现需要验证码才能访问,接入打码平台,或者机器学习训练模型,识别验证码,照样爬数据(对于超级超级复杂的验证码,请真正的人工智能(大妈)来识别);

小黑(网管)发现网站流量还是扛不住,给前端沟通,数据不要直接请求就能获得,要使用ajax加载数据;

小白发现需要加载js,直接使用无头浏览器;

小黑说,大哥,饶了我吧,成本太高,搞不起;

 

UA——访问来源的鉴定标志

ip——(默默的等待,让程序跑一会)豆瓣站点封ip

登陆——小红书APP

验证码——12306

ajax加载数据——

2种方式

简单一点:无头浏览器,直接使用selenium+phantomjs(或者其他浏览器的无头模式)

难一点:一步一步跟踪js的堆栈信息,找出计算方式,执行js代码

app端参数加载加密

app端返回数据端上加密

import requests


def crawl_douban_demo():
    while True:
        response = requests.get('https://movie.douban.com/subject/26715636/')
        print(1)
    pass


crawl_douban_demo()

 

三.HTTP基础知识

HTTP协议;(TCP/IP书籍)

四层——应用层(FTP,DNS,HTTP),传输层(TCP,UDP),网络层(IP),数据链路层(链接网络的硬件设备,网卡光纤等)

ftp:文件协议

DNS:域名解析,可以将ip地址和url地址互换,

 39.156.66.18<——>www.baidu.com互换

HTTP:超文本传输协议

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值