Vinnaren i pepparkakshustävlingen!
2015-09-24, 22:11
  #1
Medlem
Tjena!

Jag får fel :/ (därför jag är här, obviously!)

Min kod:
Kod:
import requests
from bs4 import BeautifulSoup

def trade_spider
(max_pages):
    
page 1
    
while page <= max_pages:
        
url 'http://www.kjell.com/sortiment/dator-kringutrustning/black-toner?showall=1&display=products&page=' str(page)
        
source_code requests.get(url)
        
plain_text source_code.text
        soup 
BeautifulSoup(plain_text)
        for 
link in soup.findAll('a',{title}):
            
href "http://www.kjell.com" +link.get('href')
            
title link.string

            
#print(title)
            #print(href)

            
get_single_item_data(href)

        
page += 1

def get_single_item_data
(item_url):
    
source_code requests.get(url)
    
plain_text source_code.text
    soup 
BeautifulSoup(plain_text)
    for 
item_name in soup.findAll('div', {title}):
        print(
item_name.string)
    for 
link in soup.findAll('a'):
        
href "http://www.kjell.com" link.get('href')
        print(
href)



trade_spider(3

FELMEDDELANDE

Kod:
C:\Python32\python.exe C:/Users/André/Dropbox/Pyton/tutorial25/main.py
    File 
"C:/Users/André/Dropbox/Pyton/tutorial25/main.py"line 18
        get_single_item_data
(href):
                                           ^
SyntaxErrorinvalid syntax

Process finished with 
exit code 1 

i def trade_spider
så vill jag ha alla länkar och namn från produkterna från sida 1 till den sida jag väljer.

i def get_single_item_data
så vill jag ha alla länkar efter programet har gått in i produkterna


Jag har följt en guide härifrån
https://www.thenewboston.com/videos....98&video=21561

Antar att det är något fel på beautifulsoup, där fick jag första felmeddelandet innan jag ändrade lite och fick denna.
Eller fel vid soup.findAll(....) där jag stoppar in fel variabler.
Eftersom hans exempelsida inte finns kvar provade jag från kjell.com istället, men htmlkoden där är annorlunda.

Tack på förhand!
__________________
Senast redigerad av andre2012 2015-09-24 kl. 22:24.
Citera
2015-09-25, 18:43
  #2
Moderator
vhes avatar
Felet du anger finns inte i koden du postat. Felet klagar på att du har ett kolon som inte skall vara där i slutet på rad 18. Men det har du inte. Så du har m.a.o. inte postat exakt den kod som gav felet du pratar om.

På rad elva vill du nog däremot att title skall stå inom citationstecken så att det blir en sträng. Det kan knappast vara variabeln title du är ute efter.
Citera
2015-09-28, 12:04
  #3
Medlem
Citat:
Ursprungligen postat av vhe
Felet du anger finns inte i koden du postat. Felet klagar på att du har ett kolon som inte skall vara där i slutet på rad 18. Men det har du inte. Så du har m.a.o. inte postat exakt den kod som gav felet du pratar om.

På rad elva vill du nog däremot att title skall stå inom citationstecken så att det blir en sträng. Det kan knappast vara variabeln title du är ute efter.

Jag har fixat det där, men det funkar fortfarande inte.. har pillat på lite olika saker, de där två provade jag strax efter jag skrev inlägget.

Kopierade in fel felmeddelande, det va dumt. Har inte den nu, men den påstår att det är fel i
Kod:
for link in soup.findAll('a',{'title'}): 
Den här koden är gammal iof, men jag tror att jag har valt fel saker att stoppa in i parantesen.

Ingen som kan testa koden och hitta rätt saker och posta den delen? Resten ska va rätt, men är ganska säker på att det är fel på soup-en.

Tack
Citera
2015-09-28, 18:35
  #4
Moderator
vhes avatar
Vad är det du vill uppnå med att skicka in {'title'} egentligen? Jag tror inte det gör det du tror det gör. Pröva att ta bort det argumentet helt.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback