2016-11-08 6 views
0

Im beautifulsoup4 eine Webseite zu analysieren, mit und sammeln Sie alle href Werte mit diesem CodeWie zu lösen, finden zwei von jeder Verbindung (BeautifulSoup, Python)

#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 druckt zwei von jeder Verbindung. Ich glaube, dass dies geschieht, da es den Link sowohl vom Titel als auch von der Artikelfarbe her annimmt. Ich habe ein paar Dinge ausprobiert, aber ich kann BS nicht dazu bringen, nur den Titellink zu analysieren und eine Liste von jedem Link statt zwei zu haben. Ich stelle mir vor, es ist etwas wirklich einfaches, aber ich vermisse es. Vielen Dank im Voraus

+1

make linksList1 ein set() statt list() –

+0

vielen Dank – Harvey

Antwort

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

Dieser Code wird Ihnen das Ergebnis ohne doppelte zu bekommen Ergebnisse (auch mit set() eine gute Idee, wie @Tarum Gupta sein kann) Aber ich änderte sich die Art und Weise Sie

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) 
kriechen
0
set(linksList1)  # use set() to remove duplicate link 
list(set(linksList1)) # use list() convert set to list if you need 
Verwandte Themen