python爬虫入门1

本文介绍了Python爬虫的基本概念,包括通用爬虫、聚焦爬虫、增量爬虫和深层爬虫的工作流程。详细讲解了HTTP请求和响应报文结构,并展示了使用正则表达式和BeautifulSoup库进行网页内容抓取的方法,包括正则表达式的各种匹配规则和BeautifulSoup解析网页的步骤。最后提到了反爬策略、存储爬取数据的方式,如txt、json和csv格式。
摘要由CSDN通过智能技术生成

爬虫分类

  1. 通用爬虫--搜索引擎(百度,360,搜狗)
  2. 聚焦爬虫--爬取特定领域或主题的信息
  3. 增量爬虫--只爬行新产生或者发生变化的内容
  4. 深层爬虫--爬取深层网络内容,如需要登录才能访问下载的网站(知乎、百度网盘)、受限网络信息获取

爬行流程

待抓取的url---(网页请求)-----抓回的网页数据---(数据解析)-----网页数据解析结果--(-结果存储)----数据本地存储

HTTP请求和相应报文结构

开始行

  • 请求行(请求报文:请求方法、url、协议版本)
  • 状态行(响应报文:协议版本、状态码、原因短语)

头部

headers

主体(body)

  • 提交参数(请求报文)
  • 返回的网页或者数据(响应报文)

主流浏览器对http报文的解析

  1. 头部
  • 通用头部------开始行的结合体
  • 请求头部
  • 响应头部
  • 参数信息------get和post提交的参数
  1. 主体
  • 响应返回的数据 

反爬实现思路

直接用requests的get方法请求页面,查看结果

分析头部,获取并设置User-Agent信息

构造头部,设置heades关键字内容

提交请求,查看应对反爬效果

headers={

‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36’

}

response = requests.get(url, headers=headers)

Chrome中与爬虫相关的功能

1.Elements:查找网页源代码html中的元素(标签)

2.Network:分析http请求发起后,各个资源的请求、响应信息

正则爬取图片

一般字符                                             匹配身份                                                       abc                                          abc

.(点)                                                   匹配任意除换行符‘\n’之外的字符                   a.c                                           abc

                                                          在dotall模式中也能匹配换行符

\(反斜杠)                                       转义字符,使后一个字符改变原来的意思。   a\.c                                           a.c

                                  如果字符串中有字符*需要匹配,可以使用\*或者字符集[*]     a\\c                                           a\c

[...]                            字符集                                                                                     a[bcd]e                                      abe   ace   ade

 

\d               数字[0-9 ]                           a\dc                      a1c

\D              非数字[^\d]                         a\Dc                      abc

\s               空白字符[空格\t\r\n\f\v]       a\sc                       a c

\S               非空白字符[^\s]                 a\Sc                       abc

/w              单词字符[A-Za-z0-9_]        a\wc                       abc

/W            非单词字符[^\w]                   a\Wc                     a c

数量词,用在字符或者(...)之后

*                                匹配前一个字符0或者无限次                                             abc*                ab        abccc                         

+                               匹配前一个字符1或者无限次                                              abc+              abc       abccc

?                               匹配前一个字符0或者1次                                                    abc?              ab       abc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值