【问题标题】:What I'm doing wrong with this webscraping code?我对这个网络抓取代码做错了什么?
【发布时间】:2020-02-25 00:57:34
【问题描述】:

我在尝试进行网络抓取时遇到问题。我不是很习惯编程,所以我真的不知道我做错了什么(但我有一些基础知识)。我正在尝试用 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())

我尝试编译时的问题是关于 synthax。这是输出:

 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

【问题讨论】:

  • 还修复了 bonus_list 中的数字:
  • 该方法没有带一个名为class的参数,你读过BeautifulSoup文档吗?

标签: python beautifulsoup


【解决方案1】:

有两个错误

  1. 您需要将class 替换为class_,因为它是保留名称
  2. for 循环声明 for number in bonus_list: 后忘记了冒号
  3. numeros 类不存在(至少不在“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())

【讨论】:

    【解决方案2】:

    class 是保留关键字。您不能将关键字用作变量名或函数调用中的关键字。

    BeautifulSoup 使用 class_ 来解决这个问题:

    bonus_list = soup.find_all(class_="premio")
    

    【讨论】:

      【解决方案3】:

      正如@reinstate-monica 回答的那样,class 是 python 中的保留字。 您还可以使用:

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

      9689
      3589
      2722
      ...
      

      【讨论】:

      • 数据有限制吗?我最多可以提取多少数据?
      猜你喜欢
      • 1970-01-01
      • 2019-09-09
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      相关资源
      最近更新 更多