我只能从ebay网站上抓取一张全分辨率图片的URL;但是,我无法捕获所有其他图像的URL。我正在寻找一个脚本,刮或下载所有的图像。
我想下载高分辨率的照片,而不是缩略图。code
from lxml import html
import requests
from bs4 import BeautifulSoup
import pandas as pd
main_url= 'https://www.ebay.com/'
headers= {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
}
url= 'https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=laptop&_sacat=0&LH_TitleDesc=0&rt=nc&_odkw=toaster&_osacat=0&LH_PrefLoc=3&LH_All=1&_ipg=240'
r= requests.get(url, headers=headers)
print(r)
soup= BeautifulSoup(r.content, 'html.parser')
product_list= soup.find_all('div', class_= 's-item__image')
products_site = []
for item in product_list:
for link in item.find_all('a', href= True):
products_site.append(link['href'])
products_site = list(dict.fromkeys(products_site))
products_site = list(filter(None, products_site))
products_site = [x for x in products_site if x.startswith('https://www.ebay.com/itm/')][:2]
print(len('product_site'))
item_list=[]
for link in products_site:
r = requests.get(link, headers=headers)
print(r)
soup= BeautifulSoup(r.content, 'html.parser')
Title= soup.select_one('h1', class_='x-item-title__mainTitle').get_text(strip=True)
Image_URL= [x['src'] for x in soup.findAll('img', {'id': 'icImg'})]
Product= {
"Title": Title,
"Image_URL": Image_URL
}
1条答案
按热度按时间fcy6dtqo1#
图像的URL在
eBay
上保持不变。要获得高分辨率的产品的所有图像,您可以轻松地更改这些不同缩略图的尺寸,并获得HQ图像。
例如─
.jpg
之前的拖尾s-l64
表示分辨率为64 p,您可以将其更改为s-l100
/s-l300
或s-l500
以提高分辨率,它支持的最高分辨率-s-l2000
。因此,您只需将缩略图的
s-l64
替换为s-l2000
即可获得HQ图像。使用这个技巧,你不需要点击图像放大,并获得总部的图像。
完整工作代码-
输出-