首页 > 其他分享 >爬取图片信息

爬取图片信息

时间:2022-10-09 14:56:32浏览次数:44  
标签:__ img 信息 爬取 html print data response 图片

1.图片的加载信息只有两种,(个人认为,目前只遇到过两种)

  - 同步加载

  - 异步加载

2.(1)同步加载,在你返回的数据中可以清晰的看到,你所需要的数据全部都在你所打印的response中,也就是说,可以找到想想要的数据。那么只需要一个简单的模板就可以爬取你想要的数据信息,以及图片信息。

 (2)异步加载的话,就是可能无法在你返回的数据当中找到你想要的的数据,所以,我们就是需要从其他包中抓取。XHR就可以查看是否有我们想要的数据包。或者找不到任何有关数据时,我们可以通过,关键字搜索来进行抓包。

 

3.翻页请求。

  1.翻页请求的方式,目前好像也只有两种(个人认为哈)要么是通过按钮的方式,来获取下一页的响应内容,那么在这里我们只需要,不断的变更url的参数请求,就可以不断的获取下一页的请求数据。

  另一种,就是没有翻页的按钮,就是不断的通过的下拉不断的进行刷新,那么这一种,就是异步加载的方式,刷新按钮的,没有任何的变化。那么我们应该如何如何获取,包中的数据。

  2.在不断的刷新的过程,都会有一个新的数据包产生

  

 

   从这里我们可以看到,next就是代表页数,只要不断的变更,翻页请求就能得到响应。

4.下面是简单的模板爬取方式。

  #t同步加载

import requests
import os

from lxml import etree

headers = {
#可修改
}


def get():
response = requests.request("GET", url, headers=headers)
response.encoding = response.apparent_encoding
# print(response.text)
html_data = response.text
return html_data


def parse(data):
xml = etree.HTML(data)
name = xml.xpath('//div[@class="title"]/span/a/text()')#可修改
img_src = xml.xpath('//img[@class="lazy"]/@data-original')#可修改
# print(img_src)
for n, i in zip(name, img_src):
print(n)
print(i)
print('===' * 10)
save(n, i)


def save(n, i):
img_data = requests.get(i).content#获取图片二进制数据
if not os.path.exists(''):
os.makedirs('')

with open('(保存文件夹名称)/{}.jpg'.format(n), 'wb') as f:
f.write(img_data)


if __name__ == '__main__':

for i in range(1, 3):
url = "".format(i)
print('正在下载第{}页'.format(i))
print('当前url为:', url)
html_data = get()
parse(html_data)

 

#异步加载

import requests
from bs4 import BeautifulSoup
import time
import os
from lxml import etree

payload = "next=1&table=news&action=getmorenews&limit=10&small_length=120&classid=25"#可修改

headers = {
#可修改
}

def get_data():
response=requests.post(url,headers=headers,data=data1,json=payload)
html_data=response.text
return html_data
# print(html_data)

def parse_data(data):
xml=etree.HTML(data)
img=xml.xpath('//ul[@class="pic-list after"]//a/img/@src')
name=xml.xpath('//ul[@class="pic-list after"]//a/span/text()')
for i,n in zip(img,name):
print(i)
print(n)
print('=='*10)
save_data(i,n)
def save_data(i,n):

with open('a.txt','a',encoding='utf-8')as f:
f.write(i+'\n')
f.write(n+'\n')
img_data=requests.post(i).content

if not os.path.exists('a'):
os.makedirs('a')

with open('a/{}.jpg'.format(n),'wb')as f:
f.write(img_data)

if __name__=='__main__':
url = 'https://www.umei.cc/e/action/get_img_a.php'
for i in range(1,11):
print('==正在打印参数为{}的页面=='.format(i))
data1={#每个页面的请求数据
'next': '{}'.format(i),
'table': 'news',
'action': 'getmorenews',
'limit': '10',
'small_length': '120',
'classid': '25',
}
# data1['next']=i
html_data=get_data()
parse_data(html_data)




 #如果想要爬取其他页面信息的话,这个小小的模板的可能适用。。

小白新尝,不喜勿喷。。老司机,就不要讲话啦。

标签:__,img,信息,爬取,html,print,data,response,图片
From: https://www.cnblogs.com/beilipython/p/16772092.html

相关文章

  • 视频直播源码,插入图片、删除图片、设置图片大小、提取图片
    视频直播源码,插入图片、删除图片、设置图片大小、提取图片1.插入图片Document对象有一个add_paragraph()方法插入图片,只需要传入路径或者字节流即可,实际上它也是调用段落......
  • 单据表体如何显示单位关系信息
    单据表体如何显示单位关系信息1、“单据自定义设置”--“表体自定义”,启用一个文本自定义字段,勾选只读 2、打开单据,点齿轮--对这个自定义字段,点“公式设置”1)2个单位......
  • scrapy爬取网站图片(静态加载)
    1.创建一个scrapy项目scrapystartgprojecttupiancdtupian创建爬虫文件 scrapygenspiderImagewww.com(域名)后续需要更改         开通pip管......
  • scrapy爬取校花网信息
    校花网的信息资源都可以在我们打印出来的响应对象中找到,所以说,校花网的加载方式是属于静态加载的,所以,我们就可以直接在scrapy框架中的爬虫文件档中将我们所需要的信息全部......
  • 一张图片解决 IDEA 所有的乱码问题
    ## IDEA2019.3   找到设置 按照下边配置......
  • 如何在Excel/WPS表格中查询图书信息?
    给您一个ISBN编号,您能查出它的书名、作者、价格等信息吗?答案一定是可以。但如果几百上千条ISBN编号在表格中需要查询,如何能快速的获取信息呢?相信很多老师会有这种困惑。今......
  • C# 开发的 webBrowser打开网页弹出的错误信息框
    IE浏览器遇到脚本错误时,在浏览器左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框。那么,在使用webBrowser打开网页遇到脚本错误时,会弹出......
  • png图片和jpg图片有什么区别
    首先在外观上,没有任何区别。png格式的图片所占存储大小明显大于jpg图片,相比之下jpg格式用于很多场合。png格式图片可进行无损压缩,可以在PS中重新编辑;jpg格式图片会牺牲图......
  • java在图片上绘制框框
    /***画缺陷框的图片文件*@paramfile{@linkFile}*@parampolygon缺陷框*@return带缺陷的文件*@throwsIOExceptionIO异常*......
  • 绝对实用的功能,如何收藏网页图片?
    大家在上网浏览网页的过程中有没有收藏过网页上图片的经历呢?而大家是如何保存这些图片的呢?恐怕就是使用浏览器的“保存该图片”的功能了吧。今天给大家介绍一款插件,不需......