Python 使用beautifulsoup刮取更多内容

Python 使用beautifulsoup刮取更多内容,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我需要你的帮助。我是python和beautifulsoup的初学者 我想刮取所有产品的变体。这是我的代码: from bs4 import BeautifulSoup import requests source = requests.get('https://www.tvc-mall.com/c/iphone-11-cases-c120644/?&sort=DateAdded').text soup = BeautifulSoup(source, 'lxml') for cont

我需要你的帮助。我是python和beautifulsoup的初学者

我想刮取所有产品的变体。这是我的代码:

from bs4 import BeautifulSoup
import requests

source = requests.get('https://www.tvc-mall.com/c/iphone-11-cases-c120644/?&sort=DateAdded').text
soup = BeautifulSoup(source, 'lxml')

for container in soup.findAll("div", {"class": "color-block"}):
    try:
        reference = container.a["data-mapping-sku"]
    except Exception as e:
        reference = ""
    print(reference)

    try:
        variant = container.a["title"]
    except Exception as e:
        variant = ""
    print(variant)
    
代码可以工作,但它只能为每个div class=“color block”刮取第一个内容

我想像这样刮取变量数据:

101121062A  Dark Blue
101121062B  Dark Green
101121062C  Grey
101121062D  Pink
101121062E  Light Green
101121062F  Purple
101121062G  Baby Blue
101121095A  Black
101121095B  Silver
101121095C  Red
101121095D  Pink
101121095E  Gold
101121095F  Purple
101121065A  Green
101121065B  Red
101121065C  Blue
101121065D  Black
101121109A  Black
101121109B  Red
101121109C  Rose Gold
101121109D  Green
101121109E  Brown
101121147A  Black
101121147B  Rose Gold
101121147C  Blue
101121147D  Coffee
101121078A  Brown
101121078B  Black
101121078C  Red
101121078D  Green
101121078E  Purple
101120762A  Black
101120762B  Red
101120762C  Orange
101120762D  Green
101120762E  Purple
101121051A  Black
101121051B  Rose
101121051C  Blue
101121051D  Green
101121051E  Brown
101121051F  Beige
101121051G  White
101120962A  Black
101120962B  Green
101120826A  Black
101120826B  Rose Gold
101120826C  Blue
101120826D  Red
101120826E  Gold
101120826F  Cyan
101120797A  Brown
101120797B  Black
101120797C  Red
101120797D  Rose Gold
101120797E  Blue
101120797F  Coffee
101120793A  Grey
101120793B  Black
101120793C  White
101120793D  Pink
101120793E  Light Green
101120793F  Dark Green
101120793G  Purple
101120788A  Black
101120788B  Red
101120870A  Black
101120870B  Orange
101120870C  Dark Green
101120870D  Purple
101121058A  Purple
101121058B  Orange
101121058C  Pink
101121058D  Blue
101121058E  Green
101120858A  Red
101120858B  Pink
101120858C  Blue
101120858D  Green
101120858E  Purple
101120858F  Black
101120948A  Black
101120948B  Red / Black
101120948C  Blue / Black
101120948D  Green
101121012A  Black
101121012B  Purple
101121012C  Green
101120811A  Red
101120811B  Black
101120811C  Green
101120811D  Blue
101120804A  Black
101120804B  Orange
101120804C  Yellow
101120804D  Blackish Green
101120804E  Cyan
101120804F  Light Purple
101120804G  Dark Purple
101120907A  Leopard
101120907B  Wolf
101120907C  Cat Eyes
101120907D  Panda
101120907E  Cat
101120907F  Butterfly and Flower
101120907G  Cat and Tree
101120907H  Flower
101120907I  Dragonfly
101120907J  Feather
101121032A  Black
101121032B  Red
101121032C  Army Green
101121032D  Blue
101120801A  Transparent
101120801B  Red
101120801C  Yellow
101120801D  Dark Green
101120801E  Green
101120754A  Black
101120754B  Red
101120754C  Green
101120754D  White
101120754E  Pink
101120754F  Purple
101120940A  Black
101120940B  Grey
101120940C  Green
101120940D  Blue
101120940E  Brown
101120927A  Blue Butterfly
101120927B  Leopard
101120927C  Dog
101120927D  Cats
101120927E  Mandala Flower
101120927F  Vivid Butterfly
101120927G  Beautiful Flowers
101120927H  Howling Wolf
101120927I  Wolf
101121019A  Green
101121019B  Red
101121019C  Rose Gold
101121019D  Gold
101121019E  Silver
101121020A  Black
101121020B  Silver
101121020C  Red
101121020D  Rose Gold
101121020E  Blue
101121020F  Purple
101121047A  Black
101121047B  Green
101121047C  Red
101121047D  Silver
101120952A  Black
101120952B  Yellow
101120952C  Transparent
101120952D  Light Green
101120952E  Purple
101120952F  Gold
101120952G  Dark Green
101120952H  Pink
101120952I  Red
101120952J  Blue
101120952K  Rose
101120952L  Grey
101120894A  Red
101120894B  Pink
101120894C  Dark Blue
101120894D  Green
101120894E  Black
101120894F  Deep Pink
101120894G  Baby Blue
101121001A  Black
101121001B  Wine Red
101121001C  Brown
101121001D  Beige
101121001E  Grey
101121067A  Black Blue
101121067B  Black/Silver
101121067C  Black / Red
101121067D  Black / Gold
请告诉我如何改进代码以获得此结果


非常感谢

此脚本打印所有颜色变体:

import requests
from bs4 import BeautifulSoup


url = 'https://www.tvc-mall.com/c/iphone-11-cases-c120644/?&sort=DateAdded'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')

for a in soup.select('[data-type="moreInfo"] [data-mapping-sku]'):
    print(a['data-mapping-sku'], a.img['title'])
印刷品:

101121062A Dark Blue
101121062B Dark Green
101121062C Grey
101121062D Pink
101121062E Light Green
101121062F Purple
101121062G Baby Blue
101121067A Black Blue
101121067B Black/Silver
101121067C Black / Red
101121067D Black / Gold
101121095A Black
101121095B Silver
101121095C Red
101121095D Pink
101121095E Gold
101121095F Purple
101121065A Green
101121065B Red
101121065C Blue
101121065D Black
101121109A Black
101121109B Red
101121109C Rose Gold
101121109D Green
101121109E Brown
101121147A Black
101121147B Rose Gold
101121147C Blue
101121147D Coffee
101121078A Brown
101121078B Black
101121078C Red
101121078D Green

... and so on.

最好能更清楚地说明你想要的产量。谢谢。这是网页的截图:通过我的代码,我获得了每个产品的第一个数据:1-101121062A深蓝色1a-101121095A黑色1b-101121065A绿色我想放弃所有参考和颜色变体,如1-101121062A深蓝色2-。。。。。。。。。。。。。。3 - .............. 4 - .............. 5 - .............. 6 - .............. 7 - .............. 1a-101121062A深蓝色2a-。。。。。。。。。。。。。。3a 4a 1b-101121065A绿色2b再次感谢您。您的代码很短,并且工作得很好。你有youtube的教程频道吗?@Andrej Kesely先生,建议一个好的教程来提高代码的效率和效率对我们初学者来说是很有帮助的。@Rantyd我没有youtube频道……但这是一个很好的开始。@HumayunAhmadRajib我通过回答堆栈溢出的问题学到了很多东西。我仍然每天学习新的东西。。。
101121062A Dark Blue
101121062B Dark Green
101121062C Grey
101121062D Pink
101121062E Light Green
101121062F Purple
101121062G Baby Blue
101121067A Black Blue
101121067B Black/Silver
101121067C Black / Red
101121067D Black / Gold
101121095A Black
101121095B Silver
101121095C Red
101121095D Pink
101121095E Gold
101121095F Purple
101121065A Green
101121065B Red
101121065C Blue
101121065D Black
101121109A Black
101121109B Red
101121109C Rose Gold
101121109D Green
101121109E Brown
101121147A Black
101121147B Rose Gold
101121147C Blue
101121147D Coffee
101121078A Brown
101121078B Black
101121078C Red
101121078D Green

... and so on.