2016-11-08 1 views
0

Im используя beautifulsoup4 для анализа веб-страницы и собрать все HREF значения, используя этот кодКак решить, найти два каждого звена (BeautifulSoup, питона)

#Collect links from 'new' page 
pageRequest = requests.get('http://www.supremenewyork.com/shop/all/shirts') 
soup = BeautifulSoup(pageRequest.content, "html.parser") 
links = soup.select("div.turbolink_scroller a") 

allProductInfo = soup.find_all("a", class_="name-link") 
print allProductInfo 

linksList1 = [] 
for href in allProductInfo: 
    linksList1.append(href.get('href')) 

print(linksList1) 

linksList1 печатает два из каждой ссылки. Я считаю, что это происходит, поскольку он берет ссылку от названия, а также цвет элемента. Я пробовал несколько вещей, но не могу заставить BS разбирать только ссылку на титул и иметь список одной из ссылок вместо двух. Я представляю себе что-то очень простое, но им не хватает. Заранее спасибо

+1

сделать ссылкиList1 набор() вместо списка() –

+0

большое спасибо – Harvey

ответ

0
alldiv = soup.findAll("div", {"class":"inner-article"}) 
for div in alldiv: 
    linkList1.append(div.h1.a['href']) 
0

Этот код даст вам результат без получения дубликата результатов (также с использованием набора() может быть хорошей идеей, как @Tarum Gupta) Но я изменил то, как вы ползать

import requests 
from bs4 import BeautifulSoup 

#Collect links from 'new' page 
pageRequest = requests.get('http://www.supremenewyork.com/shop/all/shirts') 
soup = BeautifulSoup(pageRequest.content, "html.parser") 
links = soup.select("div.turbolink_scroller a") 

# Gets all divs with class of inner-article then search for a with name-link class 
that is inside an h1 tag 
allProductInfo = soup.select("div.inner-article h1 a.name-link") 
# print (allProductInfo) 

linksList1 = [] 
for href in allProductInfo: 
    linksList1.append(href.get('href')) 

print(linksList1) 
0
set(linksList1)  # use set() to remove duplicate link 
list(set(linksList1)) # use list() convert set to list if you need 
Смежные вопросы