微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

抓取后丢失数据

如何解决抓取后丢失数据

我正试图在IMDB电影的前250名收视率上抓取Google数据。

movie_list = top_250_imdb["Title"]

base_url = 'https://www.google.com/search?q='

streaming = []
title = []
price = []

for movie in movie_list:
    query_url = (f'{base_url}{movie}')

    browser.visit(query_url)

    time.sleep(5)

    soup = bs(browser.html,'lxml')


    results1 = soup.find_all('div',class_ = 'ellip bclEt')

    for result in results1:
        streaming.append(result.text)
        title.append(movie.capitalize())

    results2 = soup.find_all('div',class_ = 'ellip rsj3fb')

    for result in results2:
        price.append(result.text)

在抓取后,我得到了len(streaming)len(title) = 1297 但len(price) = 1296

我无法创建DataFrame,因为它们的长度不同。

出了什么问题,我该如何解决

解决方法

我认为价格中的一个值是NaN ... Idk如何解决,但您可能会获得帮助...

尝试创建仅包含价格的数据框...然后使用fillna函数填充NaN值,然后将该价格数据框与主数据框连接...。

有点长,但可能会起作用

,

这里只需稍作更改即可监控缺失值...

    results2 = soup.find_all('div',class_ = 'ellip rsj3fb')

    for result in results2:
        if result is not None :
            p = None #u can even replace with 0 but for our convinience it is None here    
        else :
            p = result.text
        price.append(p)

现在您可以检查名为“价格”的列表的len,并且还会添加缺少的计数

u可以在将值追加到“流”和“标题”列表中的同时添加这段代码,以便在遇到任何缺失值时将其替换为提供的值,而不是放弃该操作。

只需将上面的代码替换为下面的代码,然后看一下缩进就可以了。

movie_list = top_250_imdb["Title"]

base_url = 'https://www.google.com/search?q='

streaming = []
title = []
price = []

for movie in movie_list:
    query_url = (f'{base_url}{movie}')

    browser.visit(query_url)

    time.sleep(5)

    soup = bs(browser.html,'lxml')


    results1 = soup.find_all('div',class_ = 'ellip bclEt')

    for result in results1:
        streaming.append(result.text)
        title.append(movie.capitalize())

    results2 = soup.find_all('div',class_ = 'ellip rsj3fb')

    for result in results2:
        if result is not None :
            p = None #u can even replace with 0 but for our convinience it is None here    
        else :
            p = result.text
        price.append(p)

希望这会有所帮助..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?