鱼C论坛

 找回密码
 立即注册
查看: 2914|回复: 2

[已解决]关于AttributeError: 'NoneType' object has no attribute 'text'的问题

[复制链接]
发表于 2020-5-24 17:01:54 | 显示全部楼层 |阅读模式

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

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

x
import time
import requests
from bs4 import BeautifulSoup
import numpy as np
import pandas as pd
T=3000
template_url="https://tieba.baidu.com/f?kw=%E6%9D%91%E4%B8%8A%E6%98%A5%E6%A0%91&ie=utf-8&pn={}"
def extra_from_one_page(page_lst):
    '''从一页中提取 帖子'''
    tmp=[]
    for i in page_lst:
        if int(i.find(class_='threadlist_rep_num').text)>T:
            dic={}
            dic['num']=int(i.find(class_='threadlist_rep_num').text)
            dic['name']=i.find(class_='threadlist_title').text
            dic['address']='https://tieba.baidu.com'+i.find(class_='threadlist_title').a['href']
            tmp.append(dic)
    return tmp
def search_n_pages(n):
    print('爬取n页数据')
    target=[]
    for i in range(n):
        print('pages:',i)
        target_url=template_url.format(50*i)
        res=requests.get(target_url)
        soup=BeautifulSoup(res.text,'html.parser')
        page_lst=soup.find_all(class_='j_thread_list')
        target.extend(extra_from_one_page(page_lst))
        time.sleep(0.2)
    return target
d=search_n_pages(10)
data=pd.DataFrame(d)
data.to_excel('村上春树吧.xlsx')

这段代码是用来爬取贴吧点击量超过某一阈值的帖子的,但是运行之后第12行报错了:
AttributeError: 'NoneType' object has no attribute 'text'
请问该如何修改?
最佳答案
2020-5-25 09:36:25
你每页的第一个爬取数据是下面这个,没有 你选择的属性
<li '="" class="j_thread_list thread_top j_thread_list clearfix" data-field='{"id":1,"author_name":null,"author_nickname":null,"author_portrait":null,"first_post_id":null,"reply_num":0,"is_bakan":null,"vid":null,"is_good":null,"is_top":true,"is_protal":null,"is_membertop":null,"is_multi_forum":null,"frs_tpoint":null}' data-floor="0" data-thread-type="0" data-tid="1">
<div class="t_con cleafix">
<a class="j_thread_hidden icon_thread_hidden" data-field='{"tid":1}' href="javascript:;" rel="noreferrer" title="点击隐藏本贴"></a>
<div class="col2_left j_threadlist_li_left">
</div>
<div class="col2_right j_threadlist_li_right">
<div class="threadlist_lz clearfix">
<div class="threadlist_title pull_left j_th_tit">
<i alt="招募" class="icon-bazhurecruit" title="招募"></i>
<a class="j_th_tit" href="/bawu2/errorPage?bz=1" rel="noreferrer" target="_blank" title="本吧吧主火热招募中,点击参加">本吧吧主火热招募中,点击参加</a>
</div> </div>
</div>
</div>
</li>

page_lst.pop(0),排除这个内容就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 09:36:25 | 显示全部楼层    本楼为最佳答案   
你每页的第一个爬取数据是下面这个,没有 你选择的属性
<li '="" class="j_thread_list thread_top j_thread_list clearfix" data-field='{"id":1,"author_name":null,"author_nickname":null,"author_portrait":null,"first_post_id":null,"reply_num":0,"is_bakan":null,"vid":null,"is_good":null,"is_top":true,"is_protal":null,"is_membertop":null,"is_multi_forum":null,"frs_tpoint":null}' data-floor="0" data-thread-type="0" data-tid="1">
<div class="t_con cleafix">
<a class="j_thread_hidden icon_thread_hidden" data-field='{"tid":1}' href="javascript:;" rel="noreferrer" title="点击隐藏本贴"></a>
<div class="col2_left j_threadlist_li_left">
</div>
<div class="col2_right j_threadlist_li_right">
<div class="threadlist_lz clearfix">
<div class="threadlist_title pull_left j_th_tit">
<i alt="招募" class="icon-bazhurecruit" title="招募"></i>
<a class="j_th_tit" href="/bawu2/errorPage?bz=1" rel="noreferrer" target="_blank" title="本吧吧主火热招募中,点击参加">本吧吧主火热招募中,点击参加</a>
</div> </div>
</div>
</div>
</li>

page_lst.pop(0),排除这个内容就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-26 15:12:05 | 显示全部楼层
jinlovelive 发表于 2020-5-25 09:36
你每页的第一个爬取数据是下面这个,没有 你选择的属性

page_lst.pop(0),排除这个内容就行

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 04:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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