python3:获取远程图片大小(长、宽和文件大小)

在做python3网络爬虫爬取图片的时候,可能会涉及到判断图片大小。比如我们只采集某种大小的图片。下面是判断网络图片大小的代码:

import requests
from io import BytesIO
from PIL import Image
 
 
url = 'https://sc01.alicdn.com/kf/HLB1yTzIRQvoK1RjSZFwq6AiCFXa9/Wholesale-high-quality-New-design-fashion-basketball.jpg_350x350.jpg'
response = requests.get(url)

print(type(response))


tmpIm = BytesIO(response.content)

fsize=len(tmpIm.getvalue())#获取图片的字节数

print('文件大小:',fsize/1024/1024,'M') 


im = Image.open(tmpIm)

 
# 长宽储存在im当中的size列表当中
w = im.size[0]
h = im.size[1]
 
print("宽度:%s" % (w))
print("高度:%s" % (h))
发表在 python3爬虫 | 标签为 , | 留下评论

python3爬虫:采集阿里巴巴国际站商品列表(自动下拉加载)

用requests.get(url)采集阿里巴巴商品列表的时候,每页只能采集8条。通过分析发现,更多的产品URL需要拖动鼠标下拉才能加载。网上看了一些资料,说需要找到JS入口。搞了几次,我依然找不到。最后只能采用加载浏览器来实现了。加载浏览器采集,首先要下载浏览器驱动器,然后才能顺利运行。代码如下:

from selenium import webdriver
import time,bs4,os,csv
from selenium.webdriver.chrome.options import Options
def pro_urls(n):
    opt = webdriver.ChromeOptions()
    opt.add_argument("--headless") #设置无界面模式
    opt.add_argument("--disable-gpu")

    driver = webdriver.Chrome(executable_path='C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe',options=opt) #驱动器路径

    url = "https://www.alibaba.com/products/Basketball_Jersey.html?spm=a2700.galleryofferlist.0.0.3d492c63yoMZNz&IndexArea=product_en&page="+str(n)

    driver.get(url)

    time.sleep(3)

    a=0

    while a<5:
        #下拉鼠标
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight); var lenOfPage=document.body.scrollHeight; return lenOfPage;")
        time.sleep(1)
        a=a+1

    html=driver.page_source

    bs=bs4.BeautifulSoup(html,'html.parser')

    prourls=bs.select('.organic-gallery-title')

    i=0

    for prourl in prourls:
        #print('https:'+prourl.get('href'))
        file=['https:'+prourl.get('href')]
        writer_pro('D:\Backup\桌面\篮球球衣\球衣url.csv',file)

    driver.quit()

def writer_pro(site,file):
    headfile=['url']
    csvf=open(site,'a',newline='')#newline=''去除空格
    size=os.path.getsize(site)
    writer=csv.writer(csvf)
    if size==0:
        writer.writerow(headfile)
        writer.writerow(file)
        csvf.close()
    else:
        writer.writerow(file)
        csvf.close()


n=1
while n<=100:
    pro_urls(n)
    print('采集完',n,'页')
    n=n+1
发表在 python3爬虫 | 标签为 , | 留下评论