Python新手爬虫训练小项目《爬取彼岸图网》(超详细讲解版)

这是我的第一篇文章,作为一名新手爬虫,这个算是我这几天来的努力成果,虽然代码寥寥几行但花费了大半天,新手上路还是不能只看视频,真正做项目时,真的有点束手无策,所以谨以此篇做个小总结,也希望能和新学python爬虫的小可爱们都能继续坚持学习下去。
好啦,废话不多说了,上代码:

import requests
from bs4 import BeautifulSoup  #导入requests,BeautifulSoup模块
first_url="https://pic.netbian.com/tupian/"
check_img=input("请输入你要查询照片的序号:") #输入照片序号
url=first_url+check_img+".html" #字符串的拼接
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.70"} #UA伪装
response=requests.get(url=url,headers=headers)
soup=BeautifulSoup(response.content.decode("gbk"),"lxml") 实例化soup对象
file_name=soup.h1.text#获取文件名
url2="https://pic.netbian.com/"+soup.img["src"]#照片真实地址,并不一定是我们看到的大图网址
response2=requests.get(url=url2,headers=headers) #同上文
with open(file_name+".jpg","wb") as f:f.write(response2.content)
print(file_name+"文件保存完毕!!!") #保存文件

第一步 导入相关模块

import requests
from bs4 import BeautifulSoup #导入requests,BeautifulSoup模块

这里我用的是requests库(主要是向网站服务器发送请求用的,我是这么理解的),相比较urllib.request库要简单一些;还有一个是BeautifulSoup库(主要是来解析提取网站数据的)。

第二步 向网站发送请求

first_url="https://pic.netbian.com" #首先先进入彼岸图网的网站


再随便点击一张图片:

发现网址出现变化,多了"/tupian/27712.html"的后缀。
再点击一张图片:

出现规律了,小可爱们发现了吗?对,相同的是"/tupian/…html",只是数字不同了,(我们可以直接在网站输入url处修改数字,看是否意味着有不同的照片)
(上面的两幅图片顺序反了!!)

事实证明我们的猜想没错,数字对应着不同的照片所以就有了我下面的代码:

check_img=input("请输入你要查询照片的序号:")
url=first_url+check_img+".html" #这是出现大图的网址

所以这就是我代码中的url,变为了:

first_url="https://pic.netbian.com/tupian/"
check_img=input("请输入你要查询照片的序号:")
url=first_url+check_img+".html"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.70"}

我们肯定是要保存美美的图片滴,所以url也应该是这个大图页面的url
第二步需要注意的是requests库有get()和post()两种方法发起请求,get和post的参数及用法我就不解释了,可以问度娘!!!(其实我也不是特清楚,哈哈),get和post关键是要记住前三个参数,前两个它们是相同的,是url和headers(UA伪装,网站服务器通过user-agent来判断是人为来访问网站还是爬虫来进行访问!!)下面是查询方法:
第三个参数get的是params,就是给url的参数,如下图:

第三个参数post的是data,同上也是url的参数,也是上图方式查看
由图:

可知这是get方法

response=requests.get(url=url,headers=headers) #三个参数上文都已给出

第三步 实例化对象

soup=BeautifulSoup(response.content.decode("gbk"),"lxml") 实例化soup对象

BeautifulSoup有两个参数,详细了解请看https://www.cnblogs.com/Romantic-Chopin/p/12451039.html。
简单点来说就是第一个是从网页获取得源码标签,第二个是解析器的选择。
在这里补充说明,获取网页信息之后就应该将它表示出来,一个是content方法(将网站信息转化为二进制的源码数据),之后因为是二进制的对于我们新手来说不能看懂所以需要进行解码。要用到decode方法,在这里需要注意的是,将数据解码成什么样的编码,我们需要查看网页源代码,右键单击鼠标会出现这样的界面,附图:

点击查看源代码,查看"meta-chaset",可以看出网页是什么编码,彼岸图网的是"gbk"
ps:

另一个是text方法,直接将网页数据以我们看的懂的方式呈现出来(看的懂的前提是要懂一点前端知识)
详情请点击:content和text方法的区别

第四步 保存文件

with open(file_name+".jpg","wb") as f:f.write(response2.content)
print(file_name+"文件保存完毕!!!") #保存文件

详情见:with open语句用法

BeautifulSoup的数据解析

file_name=soup.h1.text#获取文件名
url2="https://pic.netbian.com/"+soup.img["src"]#照片真实地址,并不一定是我们看到的大图网址

实例化对象好了之后,我们就可以用BeautifulSoup的解析方法了
格式:”实例化好的对象“+”.标签名",如代码中的soup.h1。
在这里推荐一个视频,我自己也在看,适合刚接触爬虫的我们这些新手上路:
bs4具体使用详解

好啦,这就是本篇文章的全部内容,如果小可爱们喜欢就请点个小赞鼓励一下吧!!!

文章 | 戴眼镜的it小孩纸

Python新手爬虫训练小项目《爬取彼岸图网》(超详细讲解版)相关推荐

  1. [ Python ] 爬虫类库学习之 xpath,爬取彼岸图网的 小姐姐 图片

    安装:pip install lxml 实例化一个etree对象 from lxml import etree 1.将本地的html文档中的源码数据加载到etree对象中 etree.parse(fi ...

  2. Python网络爬虫8 - 爬取彼岸图网美图

    彼岸图网收集了大量美图,是个不错的爬取对象.话不多说,直接上图. 分析站点 分类列表 爬取之前,自然要分析一波,这个站点的框架比较简单,从分类着手,共包含12个分类项. 4K人物 4K动漫 4K动物 ...

  3. python爬虫爬取彼岸图网图片

    python爬虫爬取彼岸图网图片 话不多说,直接上代码! import requests from PIL import Image from io import BytesIO import re ...

  4. 用Python爬取彼岸图网图片

     用Python爬取彼岸图网图片 *使用了  四个模块 import time import requests from lxml import etree import os 没有的话自行百度安装. ...

  5. 爬取彼岸图网4k图片

    爬取彼岸图网高清美女图片 代码如下

  6. 【爬虫】关于爬取彼岸图网4K壁纸的分析

    目标地址 网络绝大部分所爬取的壁纸URL类似这样: https://pic.netbian.com/uploads/allimg/180315/110404-1521083044b19d.jpg 然而 ...

  7. 大批量爬取彼岸图网内容遇到的问题

    用多进程配套多进程短时间大量爬取图网25000张图. 问题:出现程序无结果不出问题也不报错,正常结束的异常,经多方检查调试. 原因:彼岸图网cookie隔30min刷新一次,用旧的cookie爬第一级 ...

  8. requests库和lxml库爬取彼岸图网的图片

    ```python import requests,os from lxml import etree# 创建对应的存储的文件夹 if(not os.path.exists('./彼岸图网图片')): ...

  9. 爬虫urllib库小项目---爬取豆瓣读书网的海报和书籍名称并存储

    url = "https://book.douban.com/latest?icn=index-latestbook-all" 小项目需求: 1.图书海报 2.图书海报存储到本地地 ...

最新文章

  1. HDU 6438 网络赛 Buy and Resell(贪心 + 优先队列)题解
  2. C语言 | 关于e格式符的问题(附C例程)
  3. HDU - 6185 Covering(暴搜+递推+矩阵快速幂/杜教BM)
  4. 全球编程语言薪资排行榜,Java竟然垫底!!!
  5. 手把手教你学Dapr - 5. 状态管理
  6. 发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner
  7. 将jOOQ与JDBC比较
  8. java string 转 inputstream_String和inputstream互转【转文】
  9. 上传jar包到私服(仅限于翼支付公司工作流程使用)和涉及的技术总结
  10. OpenShift Security (6) - 用网络图可视化网络访问策略
  11. Mybatis DAO接口为什么不需要实现类
  12. Javascript备忘复习笔记2
  13. AWVS11安装教程
  14. 高数常见的符号及其读法
  15. [Vue]开发环境搭建
  16. AutoCAD2010 激活不了,老是激活错误(0015.111)
  17. H.265编码原理入门
  18. JavaEE_Swagger
  19. 微信小程序03---开放能力的使用、发布和分享、组件化
  20. 国际版抖音正确打开方式

热门文章

  1. pip安装pytorch和torchvision
  2. 计算机考研报录比10比1,2020考研报录比高达10:1!2021择校应避开哪些重灾区?
  3. 支付宝 app支付 沙盘使用
  4. 为什么有时 mysql 查询非常的慢?
  5. 从给定网页上下载img src= /格式的图片,并保存到制指定路径
  6. 一文告诉你什么是财务数据治理?
  7. 设计模式-MVC模式
  8. 利用先进先出原则统计易飞ERP呆滞库存
  9. opencv 单目相机pnp测距(Cpp)
  10. Type-C接口简单介绍-面向单片机应用