python读取图片信息_糖炒栗子大的好还是小的好

python读取图片信息_糖炒栗子大的好还是小的好这是一篇最基础的爬虫实例,大佬就不要看了,比较适合零基础或者有少量基础同学阅读

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

python读取图片信息_糖炒栗子大的好还是小的好

1.首先我们需要先导入所需要的包,没有的话可以【 pip install ~】 来获取

import requests
from lxml import etree

2.接下来我们要进行UA伪装,伪装的目的就是把电脑伪装成人 因为很多wangzahn都有反扒机制,不进行伪装的话根本就无法进行爬取信

#进行ua伪装
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}

3.准备工作已经完成,告诉我们要访问的URL(告诉电脑去哪里执行以下的代码)

URL = 我们所常说的网址

#指定url
url = '网址'

4.有了UA伪装以及URL,接下来我们就要去访问目标网站,把网站源代码给拿下来

#发起请求
resposne = requests.get(url=url,headers=headers)

5.因为网站源码拿下来的时候出现了乱码,所以对乱码进行处理并把无乱码网站源码赋值给data

#获取源码后处理乱码
resposne.encoding='gbk'
data = resposne.text

 然后就是开始进行数据解析了

6.将抓取下来的网站源码数据加载etree对象中

tree = etree.HTML(data)

 7.然后将使用xpath()函数结合表达式进行标签定位,提取指定内容

我们这里是只要存储图片的<li></li>区域就可以了,有不懂的可以去查一下 很简单的

python读取图片信息_糖炒栗子大的好还是小的好

li_list = tree.xpath('/html/body/div[2]/div[1]/div[3]/ul/li')

1.属性定位
定位div中属性名为href,属性值为‘www.baidu.com’的div标签: @属性名=属性值
/html/body/div[href=’www.baidu.com’] href为属性名 ‘www.baidu.com’为属性值

2. 索引定位
在href值a的div标签下有很多的li标签,想要定位到第二个li标签,li标签后面用中括号加索引值(这里的索引值是从1开始的)
/html/body/div[href=’a’]li[2]

3. 取文本内容
/text()   获取标签下直系的标签内容
//text()  获取标签中所有的文本内容
string()  获取标签中所有的文本内容

 8.然后就是对该区域进行遍历

#进行遍历
for li in li_list:
    #获取图片名称以及图片后缀 .jpg
    name = li.xpath('./a/b/text()')[0] + '.jpg'
    #获取图片的存储位置,别忘了加上前面的域名(不知道叫啥,前缀)
    href = 'https://pic.netbian.com/' + li.xpath('./a/img/@src')[0]
    #这个是再次模仿人去获取图片信息,这次的url是单纯图片存储位置
    img_response = requests.get(url=href,headers=headers)
    #这个是对图片信息进行编译
    img_data = img_response.content

9.经过遍历循环每个图片信息都可以获取,接下来就是进行存储

#上面讲解
for li in li_list:
    name = li.xpath('./a/b/text()')[0] + '.jpg'
    href = 'https://pic.netbian.com/' + li.xpath('./a/img/@src')[0]
    img_response = requests.get(url=href,headers=headers)
    img_data = img_response.content
    # print(img_data)
#持久化存储
    #定义存储位置,我这里是当级目录名字是拼音tupian  
    #注意:tupian后的斜杠一定要添加,这样才可以放入里面
    img_path = './tupian/' + name
    #定义打开方式,存储位置 'wb'是因为图片信心为二进制,所以需要加b,b是二进制英语首字母
    with open(img_path,'wb') as f:
        f.write(img_data)
    print(name + '下载成功')

10.然后就是点击运行等待就可以了

python读取图片信息_糖炒栗子大的好还是小的好

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/194879.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 几款软件加密/加壳工具的比较「建议收藏」

    几款软件加密/加壳工具的比较「建议收藏」几款.Net加密/加壳工具的比较前言使用过.NET的程序员都知道,.NET是一个巨大的跨时代进步,它开发效率高、功能强、界面观、耐用、新的语言C#已经提交为行业规范、CLR共公运行库资源丰富,这所有的特点标志着它成为主流编程语言是必然的。可是它也有一个缺点,那就是编译好的程序集可以完全反编译成源代码,这给一些不法份子提供了很好的机会,试想想,您辛苦的劳动成果就这样给了别…

  • phantomjs入门使用

    phantomjs入门使用PhantomJS是一个命令行工具。确保您熟悉命令提示符或PowerShell(在Windows上)或终端(在macOS和Linux上)的使用。这个指令假设PhantomJS已经安装并放置在路径的某个地方(例如,Windows用户请参阅本教程)。官网:https://phantomjs.org/中文网:http://wenku.kuryun.com/docs/phantomjs/index.html一、下载地址:https://phantomjs.org/download.html选择对应操

  • 自监督学习(一)自监督学习介绍

    自监督学习(一)自监督学习介绍自监督学习OverviewWhatisSelf-SupervisedLearning?WhyisSelf-SupervisedLearning?SomeExamplesUnsupervisedVisualRepresentationLearningbyContextPredictionUnsupervisedRepresentationLearningbyPred…

  • Pytest(17)运行未提交的git(pytest-picked)

    Pytest(17)运行未提交的git(pytest-picked)前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

  • Linux虚拟存储管理分析[通俗易懂]

    Linux虚拟存储管理分析[通俗易懂]Linux虚拟存储管理分析摘 要:本文通过解剖Linux操作系统的虚拟存储管理机制,说明了Linux虚拟存储的特点、虚拟存储器的实现方法,并基于LinuxKernelSource1.0,详细分析有关虚拟存诸管理的主要数据结构之间的关系。关键字:Linux操作系统内存管理虚拟存储        Linux操作系统是一种多用户多任务、支持多种平台的开源的类Unix操作系统,

  • Python 递归的多种写法

    Python 递归的多种写法题目背景:让我们来看一些例子。要对一个数字列表(或者其他序列)求和,我们可以使用内置的sum函数,或者自己编写一个更加定制化的版本。这里是用递归编写的一个定制求和函数的示例defmysum(L): ifnotL: return0 else: returnL[0]+mysum(L[1:])这是一种最基本的递归写法,通过递归的方式将列表中的所有进行相加,典型的鸭子类型…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号