爬虫

1.网页都有自己唯一的URL(统一资源定位符)来进行定位。

2.网页都使用HTML (超文本标记语言)来描述页面信息。

3.网页都使用HTTP/HTTPS(超文本传输协议)协议来传输HTML数据。

4. 首先确定需要爬取的网页URL地址

5.通过HTTP/HTTPS协议来获取对应的HTML页面

6. 提取HTML页面里有用的数据

7.Python 语法优美、代码简洁、开发效率高、支持的模块多,相关的HTTP请求模块和HTML解析模块非常丰富。
还有强大的爬虫Scrapy,以及成熟高效的 scrapy-redis分布式策略。

而且,调用其他借口也非常方便(胶水语言)

8.Python的基本语法知识

9.HTTP请求的处理,urllib、requests

处理后的请求可以模拟浏览器发送请求,获取服务器响应的文件

10.re、xpath、BeautifulSoup4(bs4)、jsonpath等
使用某种描述性一样来给我们需要提取的数据定义一个匹配规则

符合这个规则的数据就会被匹配。

11.通用的动态页面采集:Selenium + PhantomJS(无界面):模拟真实浏览器加载js、ajax等非静态页面数据

Tesseract:机器学习库,机器图像识别系统,可以处理简单的验证码,复杂的验证码可以通过手动输入/专门的打码平台

12.高定制性高性能(异步网络框架twisted),所以数据下载速度非常快,提供了数据存储、数据下载、提取规则等组件

13.scrapy-redis,在Scrapy的基础上添加了一套以 Redis 数据库为核心的组件。
让Scrapy框架支持分布式的功能,主要在Redis里做 请求指纹去重、请求分配、数据临时存储

14.其实爬虫做到最后,最头疼的不是复杂的页面,也是晦涩的数据,而是网站另一边的反爬虫人员。
    User-Agent、代理、验证码、动态数据加载、加密数据。
    数据价值,是否值的去费劲做反爬虫。


    1. 机器成本 + 人力成本 > 数据价值,就不反了,一般做到封IP就结束了。
    2. 面子的战争....


    爬虫和反爬虫之间的斗争,最后一定是爬虫获胜!

    为什么?

15.Http协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。

16.Https(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层

17.当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。

18.当我们在浏览器输入URL http://www.google.com 的时候,浏览器发送一个Request请求去获取 http://www.google.com 的html文件,服务器把Response文件对象发送回给浏览器。

19.浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。

20.当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。

21.服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。

为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息。

22.所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。 在Python中有很多库可以用来抓取网页,我们先使用urllib。

23.# -*- coding:utf-8 -*-
import urllib.request
# 向指定的url地址发送请求,并返回服务器响应的类文件对象
response = urllib.request.urlopen("http://www.baidu.com/")
# 服务器返回的类文件对象支持Python文件对象的操作方法
# read()方法就是读取文件里的全部内容,返回字符串
html = response.read().decode('utf-8')
# 打印响应内容

print(html)

24.浏览器 就是互联网世界上公认被允许的身份,如果我们希望我们的爬虫程序更像一个真实用户,那我们第一步,就是需要伪装成一个被公认的浏览器。用不同的浏览器在发送请求的时候,会有不同的User-Agent头。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值