Tweakers,
Ik weet niet of het mogelijk is of ik kan het misschien beter op een andere manier oplossen maar ik zit met het volgende probleem. Ik gebruik Beautifulsoup voor het scrapen van een website. Dat gaat op zich goed maar loop tegen het volgende aan;
Wat ik eigenlijk wil doen is die .findNext achter die soup.find plaatsen in de hoeveelheid van de count.
Bij count 2 zou hij dit moeten uitvoeren:
Bij count 3 dit:
Echter als ik de code run krijg ik de volgende foutmelding:
Is het mogelijk wat ik wil? Dus de te uit te voeren code aanpassen op basis van de count?
Ik weet niet of het mogelijk is of ik kan het misschien beter op een andere manier oplossen maar ik zit met het volgende probleem. Ik gebruik Beautifulsoup voor het scrapen van een website. Dat gaat op zich goed maar loop tegen het volgende aan;
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| soup = BeautifulSoup(html,'lxml') findall = soup.findAll('div', {'class': 'de-div-class'}) totalcount = len(findall) count = 0 for item in findall: count = count + 1 homebasis = soup.find('div', {'class': 'hometeam'}) homenext = '.findNext(\'div\', {\'class\': \'hometeam\'})' awaybasis = soup.find('div', {'class': 'awayteam'}) awaynext = '.findNext(\'div\', {\'class\': \'awayteam\'})' if count > 1: hometeam = homebasis + (homenext*count) hometeam = hometeam.getText() else: hometeam = homebasis hometeam = hometeam.getText() print hometeam |
Wat ik eigenlijk wil doen is die .findNext achter die soup.find plaatsen in de hoeveelheid van de count.
Bij count 2 zou hij dit moeten uitvoeren:
Python:
1
| soup.find('div', {'class': 'hometeam'}).findNext('div', {'class': 'hometeam'}) |
Bij count 3 dit:
Python:
1
| soup.find('div', {'class': 'hometeam'}).findNext('div', {'class': 'hometeam'}).findNext('div', {'class': 'hometeam'}) |
Echter als ik de code run krijg ik de volgende foutmelding:
Python:
1
| TypeError: unsupported operand type(s) for +: 'Tag' and 'str' |
Is het mogelijk wat ik wil? Dus de te uit te voeren code aanpassen op basis van de count?