news_url = soup.select_one('.item .linkto')['href'] TypeError: 'NoneType' object is not subscriptable
时间: 2023-07-10 17:33:29 浏览: 46
这个错误是由于`soup.select_one('.item .linkto')`返回了None对象,因此不能对它使用`['href']`访问操作。这可能是由于网页代码中没有符合这个选择器的元素,或者是因为网页请求返回了错误的结果。你可以在这一行代码之前添加一些调试代码来检查`soup.select_one('.item .linkto')`返回的对象是否为None,例如:
```
link = soup.select_one('.item .linkto')
if link is not None:
news_url = link['href']
else:
print("No element found for selector '.item .linkto'")
```
这样的话,如果没有找到符合选择器的元素,它将会打印一条消息,告诉你这个问题,并且不会抛出`TypeError`异常。
相关问题
for i in range(1, num_news + 1): url = f'{base_url}index_{i}.htm' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') news_title = soup.select_one('.item .linkto').text news_url = soup.select_one('.item .linkto')['href'] for module in modules: news_data = get_news_data(module, num_news) all_news_data.extend(news_data) AttributeError: 'NoneType' object has no attribute 'text'
这个错误是由于在`news_title = soup.select_one('.item .linkto').text`这一行代码中,`soup.select_one('.item .linkto')`返回了None对象,因此不能访问它的text属性。这可能是由于网页代码中没有符合这个选择器的元素,或者是因为网页请求返回了错误的结果。你可以在这一行代码之前添加一些调试代码来检查`soup.select_one('.item .linkto')`返回的对象是否为None,例如:
```
link = soup.select_one('.item .linkto')
if link is not None:
news_title = link.text
else:
print("No element found for selector '.item .linkto'")
```
这样的话,如果没有找到符合选择器的元素,它将会打印一条消息,告诉你这个问题,并且不会抛出`AttributeError`异常。
news_time = soup.select_one('.item .time').text AttributeError: 'NoneType' object has no attribute 'text'
这个错误是由于`soup.select_one('.item .time')`返回了None对象,因此不能对它使用`text`访问操作。这可能是由于网页代码中没有符合这个选择器的元素,或者是因为网页请求返回了错误的结果。你可以在这一行代码之前添加一些调试代码来检查`soup.select_one('.item .time')`返回的对象是否为None,例如:
```
time_elem = soup.select_one('.item .time')
if time_elem is not None:
news_time = time_elem.text
else:
print("No element found for selector '.item .time'")
```
这样的话,如果没有找到符合选择器的元素,它将会打印一条消息,告诉你这个问题,并且不会抛出`AttributeError`异常。