我只能从eBay网站刮一个全分辨率图像的网址;我无法捕捉所有其他图像的网址。我正在寻找一个脚本,刮或下载所有的图像。
我想要高分辨率的照片,而不是缩略图,下载。
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条答案
按热度按时间p1tboqfb1#
图片的URL在
eBay
上保持不变。要获得高分辨率的产品的所有图像,您可以轻松更改这些不同缩略图的尺寸并获得HQ图像。
举例来说,
字符串
.jpg
之前的尾部s-l64
表示分辨率为64 p,您可以将其更改为s-l100
/s-l300
或s-l500
以增加分辨率,它支持的最高分辨率为-s-l2000
。因此,您只需将缩略图的
s-l64
替换为s-l2000
即可获得HQ图像。使用这个技巧,你不需要点击图像放大,并获得总部的图像。
完整的工作代码-
型
输出-
型