Web-scrape 关键词,每个关键词都在不同的 url with python and bs4

Web-scrape key words that are each on a different url with python and bs4

我目前正在编写一个从 this page 中提取信息的脚本。

我想提取我已成功完成的每个项目的 alt

image = soup.find_all('img')
for i in image:
    print(i['alt'])' 

这让我得到了那些 'Item' 所需的代码。我还希望能够找到这些项目的名称并将它们 .append 到代码中(这样我就可以知道哪个代码属于哪个 'Item')

但是我在 "all" 的商店页面 html 中找不到商品的名称(这是我目前正在使用 urllib2 read() 下载的商品名称),您只能在类别中找到 Item 的名称,或者当您单击该项目并出现尺寸选择并添加到购物车按钮时。

我想打印 'Item' 代码以及项目名称和颜色(全部)。我正在考虑为每个类别创建所有不同的 url,并以这种方式找到所有信息,但这会花费我一段时间。

我想知道是否有人能够帮助我,并为我提供一个快速简单的脚本,我可以用它来执行这些任务。

我正在使用 python 2.7bs4urllib2

我也试过这个脚本 谁能告诉我为什么它不起作用我已经尝试修复它好几个小时了

from bs4 import BeautifulSoup as bs
import urllib2

URL1 = ('http://www.supremenewyork.com/shop/all/jackets')
sauce1 = urllib2.urlopen(URL1).read()
soup1 = bs(sauce1,'lxml')

for name1 in soup1.find_all(attrs={'class':'name-link'}):
    image1 = soup1.find_all('img')
    for i in image1:
        code1 = (i['alt'])+ '  '+(name1.text)
    print(code1)

(不知道为什么这里的缩进不正确但是脚本完美地执行了 name1.text 但是 i['alt'] 总是打印它能找到的最后一个词所以它最终是这样的

Bxvxpc8 dng  

Supreme®/Nike®/NBA Teams Warm-Up Jacket
Bxvxpc8 dng  Denim
Bxvxpc8 dng  Supreme®/Nike®/NBA Teams Warm-Up Jacket
Bxvxpc8 dng  White
Bxvxpc8 dng  Supreme®/Nike®/NBA Teams Warm-Up Jacket
Bxvxpc8 dng  Black
Bxvxpc8 dng  


Washed Work Trench Coat
Bxvxpc8 dng  

Floral
Bxvxpc8 dng  


Washed Work Trench Coat
Bxvxpc8 dng  Dusty Teal
Bxvxpc8 dng  


Washed Work Trench Coat
Bxvxpc8 dng  Black
Bxvxpc8 dng  Washed Work Trench Coat
Bxvxpc8 dng  White

我试过切换这两个变量,但它打印了它能找到的最后一种颜色,代码工作正常,请帮助我

我使用了 requests 模块而不是我推荐你使用的 urllib2

这里的基本策略是,获取所有夹克的链接,然后分别抓取每件夹克的名称和款式。

完整代码:

import requests
from bs4 import BeautifulSoup

r = requests.get('http://www.supremenewyork.com/shop/all/jackets')
soup = BeautifulSoup(r.text, 'lxml')

for item in soup.find_all('div', class_='inner-article'):
    url = item.a['href']
    alt = item.find('img')['alt']
    req = requests.get('http://www.supremenewyork.com' + url)
    jacket_soup = BeautifulSoup(req.text, 'lxml')
    name = jacket_soup.find('h1', itemprop='name').text
    style = jacket_soup.find('p', itemprop='model').text

    print(alt, name, style)

输出:

Zbjng0wx ys Supreme®/Nike®/NBA Teams Warm-Up Jacket Denim
U 6wgdlykaw Supreme®/Nike®/NBA Teams Warm-Up Jacket White
Uqwzgxwn aw Supreme®/Nike®/NBA Teams Warm-Up Jacket Black
 ncksopv9nw Washed Work Trench Coat Floral
Iucyf1nlqi0 Washed Work Trench Coat Dusty Teal
Aiqn291frva Washed Work Trench Coat Black
Ttnqgbiqexi Washed Work Trench Coat White
Rlpgq3dzbdk Reflective Taping Hooded Pullover Orange
7cmo7ppbbv8 Reflective Taping Hooded Pullover Tan
Gyy1gqljohi Reflective Taping Hooded Pullover Green
Xgjdkznfyxi Reflective Taping Hooded Pullover Black