爬虫代码报错,有没有人知道怎么回事?

img


这串爬虫代码哪里出了问题?有没有牛人知道?有没有相对容易爬取的网页啊?

tds=tr.find_all(‘td’)

源于chatGPT仅供参考

根据您提供的代码和报错信息,看起来问题出现在`tds=tr._find_all('td')`这行代码上。错误信息提示`PageElement._findall()`缺少4个必需的位置参数:'attrs'、'string'、'limit' 和 'generation'。

这个问题可能是因为您使用了一个名为`_find_all`的方法,但该方法需要传递额外的参数。从代码中无法确定这个方法的定义和实现,但是根据常规情况来看,应该是调用BeautifulSoup库的`find_all`方法而不是自定义的`_find_all`。

要解决这个问题,请将`_find_all`替换为`find_all`,如下所示:

```python
tds = tr.find_all('td')

请确保您已经正确导入BeautifulSoup库,例如:

from bs4 import BeautifulSoup

此外,还请检查其他地方的语法错误和缩进问题。例如,在parserHTML函数中,第25行的缩进似乎有问题,应该修正为与前面的代码块对齐。

最后,还请注意在打印语句中,要用逗号 , 连接字符串和变量,而不是中文的双引号 ,以免引发语法错误。

如果仍然遇到问题,请提供更完整的代码和详细的报错信息,以便我能够更好地帮助您解决问题。


```c#
在您提供的代码中,有几个问题需要进行修正:

1. `findALL`方法拼写错误:应该使用`findAll`而不是`findALL`。请将以下代码行中的`findALL`改为`findAll`:

```python
tds = tr.findAll('td')
house["排名"] = tr.findAll('td')[0].text.strip()
house["球员名称"] = tr.findAll('td')[1].text.strip()
house['所属球队'] = tr.findAll('td')[2].text.strip()
house['薪水'] = tr.findAll('td')[3].text.strip()
  1. 时间睡眠值设置为0:在循环内的time.sleep(0)语句中,您当前将等待时间设置为0秒,这可能会导致请求过于频繁或无法获取到正确的数据。建议适当增加等待时间,例如设置为1秒(time.sleep(1))。

  2. 保存文件时,columns参数中的字符串应该使用英文引号''而不是中文引号“”,请修改为:

df=pd.DataFrame(infor,columns=['排名',"球员名称",'所属球队','薪水'])
  1. if __name__ == '__main__':块中,需要对next_page元素是否存在进行判断,以避免找不到元素导致的异常。可以使用try-except块来捕获异常并处理:
try:
    next_page = driver.find_element(By.CLASS_NAME, "ant-pagination").find_element(By.LINK_TEXT, str(i))
    next_page.click()
    time.sleep(1)
except NoSuchElementException:
    break

这样,当找不到下一页元素时,代码将会跳出循环。

请注意,您需要确保已正确导入所需的库和模块(如requeststimeBeautifulSoup等)。

请根据以上修正,运行您的代码并检查是否仍然存在其他问题。如果遇到任何错误或问题,请提供完整的错误信息以便我可以更好地帮助您解决。

```