str_tbody = match.group() AttributeError: 'NoneType' object has no attribute 'group'
时间: 2023-10-23 14:44:46 浏览: 168
这 error message 通常是因为在使用 `match.group()` 方法时,`match` 变量的值为 `None`,即没有匹配到任何结果。这可能是因为使用的正则表达式不正确或者匹配的文本中没有符合正则表达式的内容。
为了避免出现这个问题,可以在使用 `re.match()` 方法之前,先检查一下是否成功匹配,可以使用 `if match:` 进行判断。另外,也可以使用 `re.search()` 方法,它会在整个文本中查找匹配项,而不是只在开头查找。
相关问题
import requests from bs4 import BeautifulSoup import pandas as pd url = 'https://www.shanghairanking.cn/institution' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} data_list = [] for i in range(1, 6): params = { 'type': '0', 'page': str(i), 'num': '20', 'sort': 'sort_xw' } response = requests.get(url, headers=headers, params=params) soup = BeautifulSoup(response.text, 'html.parser') table = soup.find('table', class_='rk-table') tbody = table.find('tbody') tr_list = tbody.find_all('tr') for tr in tr_list: td_list = tr.find_all('td') name = td_list[0].text.strip() region = td_list[1].text.strip() manage = td_list[2].text.strip() category = td_list[3].text.strip() double_first_class = td_list[4].text.strip() data_list.append([name, region, manage, category, double_first_class]) df = pd.DataFrame(data_list, columns=['校名', '地区', '管理部门', '类别', '双一流']) df.to_csv('shanghairanking.csv', index=False, encoding='utf-8-sig') print('数据已保存到shanghairanking.csv文件中!')报错tbody = table.find('tbody') AttributeError: 'NoneType' object has no attribute 'find'怎么解决
这个错误通常是由于 BeautifulSoup 没有找到目标元素导致的。在这个代码中,出现这个错误的原因可能是因为 BeautifulSoup 没有找到 class 为 'rk-table' 的 table 元素。你可以在代码中增加一个判断语句来避免这个错误:
```
table = soup.find('table', class_='rk-table')
if table is None:
continue
```
这样,如果 BeautifulSoup 没有找到目标元素,就会跳过本次循环,继续执行下一次循环。这个修改可以在 for 循环内部的第一行加入。
trs=tbody.find_all("tr") AttributeError: 'NoneType' object has no attribute 'find_all'
这个错误通常是因为`tbody`对象为`None`,而`None`对象没有`find_all`方法。这可能是因为你的HTML代码中没有`tbody`标签,或者`tbody`标签中没有`tr`标签。你可以尝试在代码中添加一些条件语句来检查是否存在`tbody`标签,或者使用`find`方法来查找`tbody`标签。以下是一个例子:
```python
table = soup.find('table')
if table:
tbody = table.find('tbody')
if tbody:
trs = tbody.find_all('tr')
# do something with trs
else:
# handle case where tbody is None
else:
# handle case where table is None
```
阅读全文