python 爬虫基础

本文介绍了Python爬虫的基础知识,包括HTTP与HTTPS的概念、URL形式、请求方法和响应状态码。讲解了爬虫的流程,重点阐述了requests库的使用,数据提取方法,以及动态网页数据提取的挑战。此外,还提到了Scrapy框架和Scrapy Redis的使用,帮助读者了解更高级的爬虫实现。
摘要由CSDN通过智能技术生成

  • str使用encode 方法转化为bytes
  • bytes 通过decode 转化为str

基础知识

http和https的概念

  • HTTP:超文本传输协议,默认端口号:80
  • HTTPS:HTTP+SSL(安全套接字层),默认端口号:443
  • HTTPS比HTTP更安全,但是性能更低。

爬虫的流程
在这里插入图片描述

url的形式

具体形式

scheme://host[:port#]/path/.../[?query-string][#anchor]

scheme协议:比如http,https,ftp
host服务器的IP地址或者域名
port服务器的端口(如果走协议默认端口 80 or 443)
path访问资源的路径
query-string参数,发送给http服务器的数据(就像查找的关键词)
anchor锚(跳转到网页的指定锚点位置)是否有锚点跳转的网址一样
HTTP常见请求头:浏览器给服务器的请求

GET:浏览器要,而不是浏览器传,这一行也是必须要有
/:表示浏览器访问的是一个主页,HTTP/1.1:表示协议是1.1版本。
如果浏览器给服务器和服务器返回的协议版本不一样,就看服务器版本是否支持1.0版本了。

host:表示服务器请求的是哪一个服务器,哪一个端口.
connection:复用链接/长连接等:如果用keep-alive可以提高响应速度
Upgrade-Insecure-Requests:升级不安全请求,支持把所有不安全请求变为安全请求
Accpet:表示浏览器可以接收什么格式:文本/图片等,每个格式后面的q=0.8代表的是权重,更愿意接受什么样的格式。
User-Agent:不同浏览器的Agent不一样。通过这个可以模仿浏览器。如果是普通人,是返回常见浏览器,如果是机器人,那么不返回,就爬不下来,就是反爬虫。
将浏览器版本浏览器语言浏览器格式给服务器,那么服务器进行返回,展示出来页面。
cookie: 用来保存用户的个人信息,cookie是保存在服务器的。如果第一次到达网址,那么cookie为空,如果100次为空,那么服务器可能就认为是爬虫。通过这个解决反爬虫问题。
在这里插入图片描述

常见的请求方法

  • GET:一般情况下使用这个请求
  • POST
    两个区别在于应用场景的区别。

响应状态码

响应状态码含义
200成功
302临时转移至新的url
307临时转移至新的url
404not found
500服务器内部错误

爬虫的流程

网络爬虫:模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动的抓取互联网信息的程序。
只要是浏览器能做的事情,理论上爬虫都能做。

  • 通用爬虫:针对搜索引擎的爬虫
    在这里插入图片描述
  • 搜索引擎的排序依旧什么来的呢?
    依据点击次数和被引用次数。
  • 通用搜索引擎的局限性:
  1. 通过搜索引擎所返回的网页里面90%都是无用的
  2. 图片音频视频多媒体的内容,搜索引擎无能为力
  3. 不同用户目的目的,但搜索目的相同

Robots协议:网络通过Robots告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。(道德层面的约束)

  • 聚焦爬虫:针对某个特定网站进行爬虫

在这里插入图片描述
为什么需要提取url地址?
比如找到第一页,还需要找到第二页,如此不停的反复,知道没有下一个的时候。相当于就是一个点击的过程。

爬虫的更多用途:

  • 12306抢票
  • 网站上的投票
  • 短信轰炸

浏览器发送请求的过程
在这里插入图片描述
爬虫要根据当前的url地址对应的响应为准,当前url地址的elements的内容和url的响应不一样。以url为准!!!
页面上的数据在哪里

  • 当前url地址对应的响应中
  • 其他的url地址对应的响应中:比如ajax请求中
  • js生成的:部分在响应中,部分是js生成的。

requests 的使用

判断请求是否成功

assert response.status_code == 200

数据提取方法

动态网页数据提取

静态网页:htm、html、shtml、xml

静态网页是指存放在服务器文件系统中实实在在的HTML文件。当用户在浏览器中输入页面的URL,然后回车,浏览器就会将对应的html文件下载、渲染并呈现在窗口中。早期的网站通常都是由静态页面制作的。

动态网页:asp、jsp、php、perl、cgi

动态网页是相对于静态网页而言的。当浏览器请求服务器的某个页面时,服务器根据当前时间、环境参数、数据库操作等动态的生成HTML页面,然后在发送给浏览器(后面的处理就跟静态网页一样了)。很明显,动态网页中的“动态”是指服务器端页面的动态生成,相反,“静态”则指页面是实实在在的、独立的文件。

scrapy

scrapy redis

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值