Web Scraping продукты, когда идентификаторы разные - PullRequest
0 голосов
/ 25 марта 2020

Я слежу за несколькими видео на YT, чтобы немного узнать о Web Scraping. Единственное, что я не могу выяснить, это с soup_findAll(#,{#,:#}), как бы я вытащил элементы, когда все идентификаторы разные?

В настоящее время я извлекаю информацию о мониторе из MicroCenter, и когда я проверить элемент, идентификаторы: pwrapper_0, pwrapper_1, et c. но класс product_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_ # есть, это просто # для целей этого вопроса.

Спасибо!

1 Ответ

1 голос
/ 25 марта 2020

** Вы можете выбрать все товары, используя класс jsut product_wrapper. и вы также можете использовать для l oop, чтобы выбрать каждый продукт, здесь вы можете использовать два способа. **

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...