Что я делаю не так с этим webscrapping кодом? - PullRequest
1 голос
/ 25 февраля 2020

У меня проблема с попыткой сделать паутину. Я не очень привык к программированию, поэтому я действительно не знаю, что я делаю неправильно (но у меня есть некоторые базовые знания). Я пытаюсь сделать паутину с python и красивым супом. Вот код

import requests
from bs4 import BeautifulSoup
URL = 'http://www.lotece.com.br/v2/'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find(class = 'dataResultado')
data_name =  soup.find(class = "data branco")
bonus_list = soup.find_all(class = "premio")
number = soup.find(class = "numeros")

for number in bonus_list    
    print(number.prettify())

Проблема, когда я пытаюсь скомпилировать, заключается в синтакс. Вот вывод:

 lotecepx.py", line 6
    results = soup.find(class = 'dataResultado')
                        ^
SyntaxError: invalid syntax
  File "c:/Users/pvictorml/Documents/lotecepx.py", line 6
    results = soup.find(class = 'dataResultado')
                        ^
SyntaxError: invalid syntax

Ответы [ 3 ]

2 голосов
/ 25 февраля 2020

Когда @ reinstate-monica ответил, class - зарезервированное слово в python. Вы также можете использовать:

numeros = soup.find_all("div", {"class" : 'numeros'})
for numero in numeros:
    print(numero.text)

9689
3589
2722
...
2 голосов
/ 25 февраля 2020

class - зарезервированное ключевое слово. Вы не можете использовать ключевые слова как имена переменных или как ключевые слова в вызове функции.

BeautifulSoup обходит эту проблему, используя class_ вместо:

bonus_list = soup.find_all(class_="premio")
0 голосов
/ 25 февраля 2020

Есть 2 ошибки

  1. , вам нужно заменить class на class_, так как это зарезервированное имя
  2. после которого вы забыли двоеточие для l oop объявление for number in bonus_list:
  3. класс нумерации не существует (по крайней мере, не в пределах "Premio")

вот пример того, как может выглядеть рабочий код

import requests
from bs4 import BeautifulSoup
URL = 'http://www.lotece.com.br/v2/'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find(class_ = 'dataResultado')
data_name =  soup.find(class_ = "data branco")
bonus_list = soup.find_all(class_ = "numeros")

for number in bonus_list:   
    print(number.prettify())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...