为了账号安全,请及时绑定邮箱和手机立即绑定

ID 不同时的网页抓取产品

ID 不同时的网页抓取产品

慕勒3428872 2022-09-13 17:41:01
我正在关注YT上的一些视频,以了解有关Web抓取的一些知识。我无法找到的一件事是,当所有ID都不同时,我该如何拉取项目?soup_findAll(#,{#,:#})目前,我正在从 中提取监视器信息,当我检查元素时,id 是 、等,但类适用于所有元素。我如何将所有 ID 都拉入,而不必单独拉取每个 ID?MicroCenterpwrapper_0pwrapper_1product_wrapper以下是我到目前为止的代码: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'# opening up connection, grabbing the pageuClient = uReq(my_url)# stores content into variablepage_html = uClient.read()# closes clientuClient.close()# html parsingpage_soup = soup(page_html, 'html.parser')# grabs each product, hopefullycontainers = page_soup.findAll('id', {'pwrapper_#': 'product_wrapper'})print(len(containers))注意:我知道pwrapper_#在那里,它只是一个#来回答这个问题。谢谢!
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

**您可以通过仅使用product_wrapper类来选择所有产品,您也可以使用for loop在这里选择每个产品,您可以使用两种方式。**


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'


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 want

productNumber = 16

for i in range(0,productNumber,1):

    containers = page_soup.findAll('li', {'id': 'product_wrapper'+i})

    #your code here


查看完整回答
反对 回复 2022-09-13
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信