鱼C论坛

 找回密码
 立即注册
查看: 1910|回复: 10

[已解决]懂爬虫的大佬进,问个问题

[复制链接]
发表于 2022-6-29 17:10:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import requests
from bs4 import BeautifulSoup
import pandas as pd 

response=requests.get('http://www.tianqihoubao.com/lishi/beijing/month/202005.html')
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0'}
response=requests.get('http://www.tianqihoubao.com/lishi/beijing/month/202005.html',headers=headers)

#print(response.encoding) 
print(response)
soup=BeautifulSoup(response.text, features="lxml")
txt=soup.find('table', {'class':'b'})
tbody_val=txt.tbody.find_all('tr') 
#空的列表用于加入新的数据
tbody_id=[]
e=[]
for tr in tbody_val:
   cols=tr.find_all('td')
   #迭代cols中的元素,使用strip()方法剥离出每个元素的text
   col=[content.text.strip() for content in cols]
   #append往列表中加入新的元素,attrs['class'][0]获取的是class属性的
   tbody_id.append(tr.attrs['class'][0])
   e.append(col) 
data=pd.DataFrame(e,columns=[content.text.strip() for content in txt.find_all('th')],index=tbody_id) 
data.to_excel('C:/Users/Administrator/Desktop/data.excel') 

请问我这段代码为什么一直报错
AttributeError: 'NoneType' object has no attribute 'find_all'
是因为response有长度限制,没有爬完全部代码吗?
最佳答案
2022-7-1 08:54:30

tbody 这个标签是浏览器自动加上的,你右击网页源代码会发现没有 tbody 标签

所以爬虫这里代码不需要在 tbody 下查找 tr ,直接查找 tr 标签即可,否则就会因为查找不到 tbody 标签而返回 None

解决方法,将代码中的:tbody_val = txt.tbody.find_all('tr') 改为 tbody_val = txt.find_all('tr') 即可

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-30 19:51:31 | 显示全部楼层
可能是没有找到tbody,删了tbody试试,或者你打印下txt看里面也没有tbody
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-30 20:13:52 | 显示全部楼层
txt.find_all('tr')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-1 08:54:30 | 显示全部楼层    本楼为最佳答案   

tbody 这个标签是浏览器自动加上的,你右击网页源代码会发现没有 tbody 标签

所以爬虫这里代码不需要在 tbody 下查找 tr ,直接查找 tr 标签即可,否则就会因为查找不到 tbody 标签而返回 None

解决方法,将代码中的:tbody_val = txt.tbody.find_all('tr') 改为 tbody_val = txt.find_all('tr') 即可

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-1 16:38:25 | 显示全部楼层

可是没用,照样报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-1 16:44:53 | 显示全部楼层
Twilight6 发表于 2022-7-1 08:54
tbody 这个标签是浏览器自动加上的,你右击网页源代码会发现没有 tbody 标签

所以爬虫这里代码不需要 ...

没用哎照样报错,最佳还是草率了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-1 17:06:40 | 显示全部楼层


没有调试你整个代码,只看了你发的报错部分而已

后来的报错是原来的错误吗?如果不是那么原先的问题解决了也不算草率吧


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-1 19:50:54 | 显示全部楼层
Dogelike 发表于 2022-7-1 16:38
可是没用,照样报错


你确定去了还是不行?我不信
错误发出来看看

随手试了哈,我是可以的哦
import requests
from bs4 import BeautifulSoup


response=requests.get('http://www.tianqihoubao.com/lishi/beijing/month/202005.html')
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0'}
response=requests.get('http://www.tianqihoubao.com/lishi/beijing/month/202005.html',headers=headers)

#print(response.encoding)
#print(response)
soup=BeautifulSoup(response.text, features="lxml")
txt=soup.find('table', {'class':'b'})
tbody_val=txt.find_all('tr')
print(tbody_val)
==================================
Python 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
======================== RESTART: E:\Users\desktop\1.py ========================
[<tr>
<td>
<b>日期</b></td>
<td>
<b>天气状况</b></td>
<td>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-1 19:59:33 | 显示全部楼层
本帖最后由 cflying 于 2022-7-1 20:00 编辑
Dogelike 发表于 2022-7-1 16:44
没用哎照样报错,最佳还是草率了


报错内容发出来看看,我随手试了哈,去掉tbody后没问题呀
其他的没试,反正这个错误是没了
AttributeError: 'NoneType' object has no attribute 'find_all'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-10 14:05:48 | 显示全部楼层
cflying 发表于 2022-7-1 19:50
你确定去了还是不行?我不信
错误发出来看看

好吧解决了,阿里嘎多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-10 14:07:24 | 显示全部楼层
Twilight6 发表于 2022-7-1 17:06
没有调试你整个代码,只看了你发的报错部分而已

后来的报错是原来的错误吗?如果不是那么原先的问题 ...

好吧解决了,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 15:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表