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读取图片信息_糖炒栗子大的好还是小的好

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nginx 转发_nginx转发文件流

    nginx 转发_nginx转发文件流前后分离模式减少域名寻址时间,直接走静态html文件的域名请求,服务器做转发location/api/{proxy_passhttp://api.domain.com;#http://api.domain.com/api/}location/api/{proxy_passhttp://api.domain.com/;http://api.domain.com/}hosts127.0.0.1api.domain.com

    2022年10月19日
    3
  • BERT中的词向量指南,非常的全面,非常的干货[通俗易懂]

    BERT中的词向量指南,非常的全面,非常的干货[通俗易懂]点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:ChrisMcCormick编译:ronghuaiyang导读在本文中,我将深入研究谷歌的BERT生成的…

    2022年6月10日
    35
  • 如何成为一名卓越的数据科学家?

    如何成为一名卓越的数据科学家?

    2022年3月4日
    40
  • 犀利!分清候选码和主码

    犀利!分清候选码和主码

    2022年3月4日
    51
  • eclipse如何使用svn_pr入门教程

    eclipse如何使用svn_pr入门教程一、Windows下安装SVN安装过程直接点击下一步即可,不想用默认位置的话,可以更改安装位置。二、检查安装是否成功1、检查环境变量中是否自动配置了系统变量。(默认是自动配置的)。2、安装根目录其中bin目录下是一些可执行文件(.exe)3、打开cmd窗口,输入命令svn–version检查版本号,查看安装是否成功。由于已经配置了环境变量,所以可以在任何位置使用svn…

    2022年9月26日
    2
  • gemtuzumab ozogamicin_gazopa识图

    gemtuzumab ozogamicin_gazopa识图原文链接:http://www.sohu.com/a/306325058_671230纵观数据中心业界,底层技术方面其实正处在一场架构变革的初始点,这场变革就是I/O总线的网络化以及I/O资源的大规模池化。众所周知,在开放平台下,PCIE是目前高性能I/O设备普遍采用的总线类型,目前已经到Gen4,很快会到Gen5。但是PCIE总线的树形拓扑以及有限的设备标识ID号码范围,导致其无法形成一个大规模网络,这个问题在NVMe盘未普及之前显得不那么是个问题,但是NVMe盘得道广泛应用之后,会占用大量的PCIE

    2025年6月24日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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