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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Coursera 助学金模板

    Coursera 助学金模板最近准备开始在Coursera上刷编程课程,然鹅作为一个穷学生当然是负担不起几百刀一节的学费,还好可以申请助学金,真是雪中送炭……于是乎,我觉得要提前编一套模板出来便于以后用……刚刚提交了PythonforEveryone课程的申请,把内容写下来记录一下……理由Dearreviewers,IamastudentfromChinawhohasnoincome…

    2022年7月24日
  • MODIS数据wget下载[通俗易懂]

    MODIS数据wget下载[通俗易懂]运行/cmdwget.exe放在E:\DATA\MODIS\MCD12Q1目录下。wget-erobots=off-m-np-R.html,.tmp-nH–cut-dirs=3“https://ladsweb.modaps.eosdis.nasa.gov/archive/orders/501504344/”–header“Authorization:Bearera2ltaHl1bmpvb25nOmEybHRhSGwxYm1wdmIyNW5NakpBWjIxaGFXd3VZ

    2022年5月29日
  • Java网络爬虫(七)–实现定时爬取与IP代理池

    Java网络爬虫(七)–实现定时爬取与IP代理池注:对代码及思路进行了改进—Java网络爬虫(十一)–重构定时爬取以及IP代理池(多线程+Redis+代码优化)定点爬取当我们需要对金融行业的股票信息进行爬取的时候,由于股票的价格是一直在变化的,我们不可能手动的去每天定时定点的运行程序,这个时候我们就需要实现定点爬取了,我们引入第三方库quartz的使用:packagetimeutils;importorg.quart

    2022年5月5日
  • 监控神器-普罗米修斯Prometheus的安装

    监控神器-普罗米修斯Prometheus的安装  最近看了些AIOPS的资料,对于里面提及的一个普罗米修斯Prometheus起了兴趣,首先是联想到异形,哈哈。去看了一下,普罗米修斯还真是厉害,而且还是开源的,真是搬砖党的福音。功能:在业务层用作埋点系统Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端)。我们可以通过客户端方面的对核心业务进行埋点。如下单流程、添加购…

    2022年5月20日
  • python基础语法个人笔记_python基础题库

    python基础语法个人笔记_python基础题库python语法规范python的语法规范非常重要,简洁明了是python的特性,以下是python语法的一些说明python3的编码格式是unicode(utf-8)标识符的规则:由字母、数字

    2022年7月28日
  • Jmeter进行稳定性测试[通俗易懂]

    Jmeter进行稳定性测试[通俗易懂]首先,创建你要进行稳定性测试的脚本我创建的脚本树如下:2.场景设置LOGIN使用事务循环控制器线程组设置并发用户数200在启动1s,200并发用户全部启动循环设置为永远采用调度器:有两种工作方式1.设置启动和结束时间2.设置持续时间,我设置的是10小时给登录接口设置个timer:timer信息如下:目标吞吐量:24000TPS/MIN=400tp

    2022年9月9日

发表回复

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

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