最新动态
python爬虫简单实例 python爬虫案例讲解
2024-12-06 17:38  浏览:94

python爬虫简单实例 python爬虫案例讲解

目录标题

  • 1、爬虫介绍
  • 1.1 爬虫的合法性
  • 1.2 网络爬虫的尺寸
  • 1.3 robots.txt协议
  • 1.4 http&https协议
  • 1.5 requests模块
  • 1.5.1 request库的异常
  • 2、实战案例
  • 2.1 百度页面
  • 2.2 爬取京东商品页面
  • 2.3 爬取亚马逊商品页面-更改headers
  • 2.4 百度/360搜索关键词提交-params
  • 2.5 网络图片的爬取和存储
  • 2.6 IP地址归属地的自动查询
  • 2.7 爬取搜狗首页
  • 2.8 搜索词条
  • 2.9 破解百度翻译
  • 2.10 豆瓣电影排行
  • 2.11 爬取肯德基餐厅查询指定地点的餐厅
  • 2.12 爬取国家药品监督管理局

什么是爬虫? – 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程 浏览器抓取的是一个整页面,而我们很多时候爬虫是先抓取符合特定要求的信息

1.1 爬虫的合法性

在法律中是不被禁止的,但具有违法风险 不合法:爬虫+黑客技术,攻击别人的网站 善意爬虫 -搜索引擎里的抓取系统其实就是各自编写的一个爬虫程序 恶意爬虫 - 抢票软件对12306的多次操作 爬虫类似骚扰电话,网络爬虫会对web开发带来问题

爬虫带来的风险可以体现在如下2个方面:

  • 骚扰问题:爬虫行为干扰了被访问网站的注册运营
  • 法律问题:爬虫抓取的数据用于牟利将带来法律风险

如何避免进局子?

  1. 时常优化自己的程序,避免干扰被访问网站的正常运行
  2. 在使用、传播爬取到的数据时,审查抓取到的内容,涉及用户隐私或者商业机密等敏感内容,及时停止爬取或传播

因为这些问题,网站人员会限制爬虫:

  1. 来源审查:判断User-Agent进行限制,如果User-Agent字段不是已知的浏览器,则很可能是爬虫
  2. 发布公告:Robots协议,告知可爬取的内容

1.2 网络爬虫的尺寸

python爬虫简单实例 python爬虫案例讲解_python爬虫简单实例

大规模的全网爬虫,类似百度,谷歌这种浏览器,速度是关键

爬虫在使用场景中的分类: 1.通用爬虫:(搜索引擎中的抓取系统重要部分)抓取的是一整张页面的数据 2.聚焦爬虫:是建立在通用爬虫的基础上。抓取的是页面中特定的局部内容。(先通用爬虫找到一页面,再聚焦爬虫找到页面中局部内容) 3.增量爬虫:监测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。

爬虫中的矛与盾? 例子:电商中店家,一方面希望产品被爬取,这样会增加产品的流量。另一方面,不希望被同行爬取,或得产品价格、产品描述等详细信息

反爬机制 门户网站,通过制定相应策略或技术手段,防止爬虫程序进行网站数据的爬取。

反反爬策略 爬虫程序通过制定相关策略或技术手段,破解门户网站中的反爬机制,从而获得门户网站中的相关数据

1.3 robots.txt协议

robots-机器人 use-agent disallow

  • —表示所有 君子协议。规定了哪些数据可以被爬取哪些数据不可以被爬取。 如何查看:网站地址/robots.txt 例如:https://www.taobao.com/robots.txt 如果网站没用robosts协议,默认允许所有爬虫

1.4 http&https协议

http协议-超文本传输协议

概念:服务器与客户端进行数据交互的一种形式。http是一种基于“请求与响应”模式的、无状态的应用层协议。

无状态是指:第一次请求与第二次请求之间没有关联

应用层协议:该工作在TCP协议之上

HTTP协议采样URL作为定位网络资源的标识

python爬虫简单实例 python爬虫案例讲解_爬虫_02

理解URL:通过HTTP协议存取资源的Internet路径,一个url对应一个数据资源

python爬虫简单实例 python爬虫案例讲解_python爬虫简单实例_03

patch与put的对比:

python爬虫简单实例 python爬虫案例讲解_python_04

常用请求头信息: User-Agent : 请求载体的身份标识(浏览器的标识,例谷歌。) Connection : 请求完毕后,是断开连接还是保持连接

常用响应头信息: Content-Type :服务器响应回客户端的数据类型(可以是字符串类型,jesen类型等)

https协议: https协议与http协议几乎类似,唯一的区别是s (secure安全) 安全的http协议,安全的超文本传输协议,安全涉及到数据加密,交互、传输过程中的数据是加密过的。

加密方式:

  • 对称密钥加密:客户端把密钥+密文发给服务器,缺点容易被截取
  • 非对称密钥加密:服务器发公钥给客户端,客户端据此加载密文后传回,缺点公钥可能会被拦截且篡改
  • 证书密钥加密(https采取的证书密钥加密):引入一个证书认证机构

1.5 requests模块

网络请求模块:urllib模块与 requests模块 requests模块:python中原生的一款基于网络请求的模块,功能强大,简单便捷,效率极高。 作用:模拟浏览器发请求。

如何使用?(requests模块的编码流程) 遵从浏览器发请求的流程

  1. 指定url (要访问的网页)
  2. 发起请求
  3. 获取响应数据
  4. 持久化存储响应数据

环境安装:pip install requests 测试:import requests

实战:

  1. 需求1:爬取搜狗指定词条对应的搜索结果页面(简易网页采集器) UA检测、UA伪装
  2. 需求2:破解百度翻译 post请求(携带了参数) 响应数据是一组json数据
  3. 需求3:爬取豆瓣电影分类排行榜中电影详情数据

request.get(url,params=None,**kwargs) url :拟获取页面的url链接 params: 参数,字典或者字节流格式 **kwargs: 12个控制访问的参数

r.status.code —状态码。如果是200说明请求成功,否则请求失败

type® —是一个类

r.headers ----get请求获得页面的头部信息

r.text----http响应内容的字符串形式,即url对应的页面内容

r.encoding ----编码方式

r.apparent_encoding — 备选编码方式

r.content—HTTP响应内容的二进制形式

python爬虫简单实例 python爬虫案例讲解_开发语言_05

使用requests.get请求时的流程:

python爬虫简单实例 python爬虫案例讲解_python_06

1.5.1 request库的异常

python爬虫简单实例 python爬虫案例讲解_python_07

r.raise_for_status() —用来查看是否异常,如果不是200,产生requests.HTTPError异常

通用代码框架:

Requests库的7个主要方法

python爬虫简单实例 python爬虫案例讲解_开发语言_08

最常使用的方法:requests.get()

2.1 百度页面

如果header中不存在charset,则认为编码为ISO-8859-1,但这个没法解析中文

2.2 爬取京东商品页面

2.3 爬取亚马逊商品页面-更改headers

2.4 百度/360搜索关键词提交-params

python爬虫简单实例 python爬虫案例讲解_爬虫_09

2.5 网络图片的爬取和存储

如果一个url链接是以.jpg结尾,则表示的是一个图片文件

用图片原本的名字命名:

python爬虫简单实例 python爬虫案例讲解_数据_10

图片、视频、动画等都是类似这种

2.6 IP地址归属地的自动查询

IP138网站提供了IP地址查询归属地的功能,所以借助IP138网站

网站平台提供的一些点查询的功能,可能都是通过链接来实现的

2.7 爬取搜狗首页

需求:爬取搜狗首页的页面数据

结束后点击文件夹中的sogou.html项目,加载出来的网页即爬出来的页面

2.8 搜索词条

需求1:爬取搜狗指定词条对应的搜索结果页面(简易网页采集器)

输入自己想要查询的关键词,爬取出浏览器搜索出的结果页面

2.9 破解百度翻译

数据解析:一张页面中的局部解析 局部页面刷新: post请求(携带了参数)

2.10 豆瓣电影排行

2.11 爬取肯德基餐厅查询指定地点的餐厅

有点不理解,为啥这里url的问号后面部分不删掉?

2.12 爬取国家药品监督管理局

网站设置了新的反爬机制,无法实际爬到,但思路仍然值得学习

代码测试or抓包工具,得到不是由于地址栏中的url得到的。可能是由于ajax请求得到的 XHR中的ajax请求包 通过对详情页的url分析得到:

  1. url的域名都是一样的,只有携带的参数id不一样
  2. id值可以从首页对应的ajax请求到的json中获取
  3. 域名和id值拼接出一个完整的详情页的url

    以上就是本篇文章【python爬虫简单实例 python爬虫案例讲解】的全部内容了,欢迎阅览 ! 文章地址:http://lanlanwork.gawce.com/quote/10728.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 阁恬下移动站 http://lanlanwork.gawce.com/mobile/ , 查看更多