作为一个python新入门小白,突然就想发个博客,一方面为了记录学习历程,一方面能分享给新入门的同学经验,更多的是想和大家一起学习和交流。以下是我以小白的角度分享的爬虫的相关知识和一个简单的爬取网页图片的实例(大家都喜欢看的那种)

小白可以在文章后面先了解完什么是爬虫后,然后我们来动手写一个实例,代码是枯燥的,但我们可以找我们感兴趣的网站和图片进行爬取,博主在这里选择爬取一组美女的写真照片 (仅用来教学哈)

1.实例上手(附详细注释)

算法过程:进入目标网站,打开检查元素界面,在里面可以找到我们想用的信息,比如请求方式(有get和post请求),和一些请求中的参数,了解到信息后我们查看页面源代码,找到存储照片的标签并查看规律,以便我们用正则提取我们想要的数据,本案例为图片的src地址,再用content方法获取图片的二进制形式的数据,最后将图片写入我们指定路径。(需要注意的是图片路径得不同,相同路径只能存放一个图片,博主在这坑了好几次,在这里博主选择用num来控制路径)

小拓展:

这里我们可以修改请求的参数值来获取更多内容,也可以更改下网页的url和对应的正则表达式来爬取其他网页的图片


开始:我们先导入需要的包

import requests  # python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高
import re        # 正则解析数据需要用到
import os        # 用来建立文件夹存放爬取到的图片
if __name__ == '__main__':# 创建一个文件夹,保存所有图片if not os.path.exists('./p'):os.mkdir('./p')url = 'https://www.soumeitu.com/mt/ugirls.html'# 进行UA伪装,让我们的请求伪装成浏览器对网站进行访问headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38'}# 使用通用爬虫对url对应的一整张页面进行爬取page_text = requests.get(url=url, headers=headers).text# 使用聚焦爬虫将页面中所有的糗图进行解析/提取(正则)ex = '<div class="post-thumb">.*?<img src="(.*?)" alt.*?</div>'img_src_list = re.findall(ex, page_text, re.S)  # 参数1为正则,参数二为正则作用的文档,re.S和re.M分别为单行匹配和多行匹配print(len(img_src_list))  # 打印当前列表中地址个数num = 0 # 这里的num用于给照片起名字# 加下来就是遍历列表并把它按照指定路径存储了for src in img_src_list:num = num + 1n = str(num)img_data = requests.get(url=src, headers=headers).contentimg_name = n + '.jpg' # 照片名称imgPath = './q/' + img_name # 存储路径with open(imgPath, 'wb') as fp: fp.write(img_data)print(img_name, '下载成功!')

获得的图片可以在本地文件夹中打开

2.爬虫的基本知识

爬虫在使用场景中的分类

  • 通用爬虫:抓取系统重要组成部分(整张页面爬取)

  • 聚焦爬虫:是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容

  • 增量式爬虫:检测网站中数据更新的情况,只会爬取网站中最新更新出来的数据

http协议

  • 概念:就是服务器和客户端进行数据交互的一种形式

常用请求头信息:

  • User-Agent:请求载体的身份标识

  • Connection:请求完毕后是断开连接还是保持连接

常用响应头信息:

  • Content-Type:服务器响应客户端的数据类型

https协议:

  • 安全的超文本传输协议

加密方式:

  • 对称密钥加密

  • 非对称密钥加密

  • 证书密钥加密

requests模块

  • urllib模块

  • requests模块

get和post请求

  • requests中两种不同的请求,差异可以去了解一下

requests模块:

python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高

作用:模拟浏览器发请求

如何使用:(requests模块的编码流程)

  • 指定url

    • UA检测

    • UA伪装

  • 发起请求

  • 获取响应数据

  • 持久化存储

环境安装

博主在这里推荐pycharm,界面比较传统,比较简单和方便,可以官网进行下载社区版

实战编码

在这里放上最原始的爬取搜狗首页的数据代码

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

    代码:

    # 爬取搜狗首页的页面数据
    import requests
    if __name__ == "__main__":# 指定urlurl = 'https://www.sogou.com/'# 发起请求# get方法会返回一个响应对象response = requests.get(url=url)# 获取响应数据,text返回的是字符串形式的响应数据page_text = response.textprint(page_text)# 持久化存储with open('./sougou.html', 'w', encoding='utf-8') as fp:fp.write(page_text)print("爬取数据结束")

上手快!!福利局!新手如何使用python爬虫爬取网页图片(使用正则进行数据解析)当然这个新手是我自己相关推荐

  1. python爬虫爬取网页图片_Python爬虫:爬取网页图片

    先分析查找要爬取图片的路径 在浏览器F12 审查元素 整体实现代码 # -- coding:UTF-8 -- import requests from bs4 import BeautifulSoup ...

  2. python爬虫爬取使用Ajax请求的网站数据解析——以梅老板微博为例(m.weibo.cn)

    文章目录 前言 什么是Ajax Ajax基本原理 发送请求 解析内容 渲染网页 Ajax分析方法 查看请求 过滤请求 Ajax结果提取 1.分析请求(since_id解析) 2.分析响应 3.爬取微博 ...

  3. python爬虫爬取网页图片_Python爬虫实现抓取网页图片

    在逛贴吧的时候看见贴吧里面漂亮的图片,或有漂亮妹纸的图片,是不是想保存下来? 但是有的网页的图片比较多,一个个保存下来比较麻烦. 最近在学Python,所以用Python来抓取网页内容还是比较方便的: ...

  4. python爬虫 爬取360图片(非结构化数据)

    爬虫思路:先拼接json数据包的url,再从中提取图片链接 域名:image.so.com 抓包 360图片是动态加载的数据 点击图片分类中的清新美女 --> ctrl + shift + i ...

  5. Python爬虫爬取网页数据并存储(一)

    Python爬虫爬取网页数据并存储(一) 环境搭建 爬虫基本原理 urllib库使用 requests库使用 正则表达式 一个示例 环境搭建 1.需要事先安装anaconda(或Python3.7)和 ...

  6. python爬虫,爬取下载图片

    python爬虫,爬取下载图片 分别引入以下三个包 from urllib.request import urlopen from bs4 import BeautifulSoup import re ...

  7. python爬虫爬取网页新闻标题-看完保证你会

    python爬虫爬取网页新闻标题方法 1.首先使用浏览自带的工具--检查,查找网页新闻标题对应的元素位置,这里查到的新闻标题是在 h3 标签中 2.然后使用编辑器编写python代码 2.1方法一: ...

  8. node:爬虫爬取网页图片 1

    代码地址如下: http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图 ...

  9. Python爬虫爬取相关图片

    简要的实现实现Python爬虫爬取百度贴吧页面上的图片,下面的网页就是本篇博客所要爬的网页,当然看到的只是其中的一部分图片,是所要爬取的页面, 而下图则是最终的爬取的图片: 接下来就简要的讲讲爬取的整 ...

最新文章

  1. linux 桌面显示视频播放器,Ubuntu 13.10开启媒体播放器VLC桌面通知的步骤
  2. 【渝粤题库】陕西师范大学600002 物理化学(下) 作业(专升本)
  3. Ubuntu18.04配置TeXLive2020+TeXstudio
  4. linux locate
  5. C++中的声明和定义
  6. MATLAB(R2021a)软件下载和安装教程
  7. 超详细使用VirtualBox安装虚拟机
  8. CRM 客户管理系统C#源码
  9. vue 扁平化_JS数组扁平化(flat)
  10. Deep Learning Algorithm for Cyberbullying Detection
  11. 考试系统设计oracle,在线考试系统的设计与实现|毕业设计源代码|论文开题报告|Oracle...
  12. vue 根据身份证号获取性别,年龄,出生年月
  13. 港科夜闻|香港科大海洋科学系主任兼讲座教授钱培元:成立产业推广部抢商机...
  14. html读秒倒计时,读秒倒计时
  15. html+css+js 做一个加解密小网页
  16. C\C++中strcat()函数
  17. 国庆 深圳游玩 路线规划之南山区
  18. 史上最全Hashmap面试总结,51道附带答案,持续更新中...
  19. 特征值与特征向量、特征矩阵
  20. python sort 多级排序_python sort、sorted高级排序技巧

热门文章

  1. python traceback 丢失_Python traceback 异常处理
  2. CART回归树模型树 生成 剪枝 in Python
  3. Delphi著名皮肤控件库横向对比
  4. SQL按月统计数据量
  5. vbs整人代码蓝屏_小弟求VBS整人代码 比较有用的!以前发过的就不要在发了!求那种运行就蓝屏之类的 比较新的代码...
  6. Makefile的宏
  7. MybatisPlus操作
  8. STM32基于IIC通信协议的OLED模块使用(详解)
  9. HDLC PPP FR(帧中继)
  10. ES6——Promise 、ayanc 和 await 相关知识点