ID 不同时的网页抓取产品

我正在关注YT上的一些视频,以了解有关Web抓取的一些知识。我无法找到的一件事是,当所有ID都不同时,我该如何拉取项目?soup_findAll(#,{#,:#})


目前,我正在从 中提取监视器信息,当我检查元素时,id 是 、等,但类适用于所有元素。我如何将所有 ID 都拉入,而不必单独拉取每个 ID?MicroCenterpwrapper_0pwrapper_1product_wrapper


以下是我到目前为止的代码:


from urllib.request import urlopen as uReq

from bs4 import BeautifulSoup as soup


my_url = 'https://www.microcenter.com/search/search_results.aspx?Ntk=all&sortby=match&N=4294966896+4294821085&myStore=true'


# opening up connection, grabbing the page

uClient = uReq(my_url)


# stores content into variable

page_html = uClient.read()


# closes client

uClient.close()


# html parsing

page_soup = soup(page_html, 'html.parser')


# grabs each product, hopefully


containers = page_soup.findAll('id', {'pwrapper_#': 'product_wrapper'})

print(len(containers))

注意:我知道pwrapper_#在那里,它只是一个#来回答这个问题。


谢谢!


慕勒3428872
浏览 94回答 1
1回答

慕码人2483693

**您可以通过仅使用product_wrapper类来选择所有产品,您也可以使用for loop在这里选择每个产品,您可以使用两种方式。**from urllib.request import urlopen as uReqfrom bs4 import BeautifulSoup as soupmy_url = 'https://www.microcenter.com/search/search_results.aspx?Ntk=all&sortby=match&N=4294966896+4294821085&myStore=true'uClient = uReq(my_url)    page_html = uClient.read()uClient.close()    page_soup = soup(page_html, 'html.parser')containers = page_soup.findAll('li', {'class': 'product_wrapper'})print(len(containers))for product in containers :    #your code here     #or#set how many product you wantproductNumber = 16for i in range(0,productNumber,1):    containers = page_soup.findAll('li', {'id': 'product_wrapper'+i})    #your code here
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python