首页 > 解决方案 > Instascrape (InvalidArgumentException: 无效参数: 'url' 必须是字符串")

问题描述

错误:InvalidArgumentException:无效参数:'url' 必须是字符串

我正在尝试使用Mac 上的Instascrape为上传日期、评论和喜欢数据抓取特定的 Instagram 个人资料。我的代码基于尝试重现 Chris Greening 的Visualizing Instagram Engagement代码,但对于我希望从中检索数据的配置文件。我在 Selenium 中输入可执行路径时遇到问题,因此我导入了 ChromeDriveManager来解决这个问题。

我的问题,至少据我所知,是 DataFrame 没有接收数据?在某些情况下,我的抓取“成功”运行但仍然产生了一个空的 DataFrame。请让我知道您的想法,或者是否需要我提供任何其他信息。我最近的代码如下。

import pandas as pd
from selenium.webdriver import Chrome
from instascrape import Profile, scrape_posts
from webdriver_manager.chrome import ChromeDriverManager
#defining path for Google Chrome webdriver;
driver = webdriver.Chrome(ChromeDriverManager().install())


# Scraping profile
SESSIONID = 'session id'   #Actual session id excluded on purpose
headers = {"user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36 Edg/87.0.664.57",
            "cookie": f"sessionid={SESSIONID};"}
prof = Profile('https://www.instagram.com/username/') #username exlcuded as well
prof.scrape()

# Scraping the posts
posts = prof.get_posts(webdriver=driver, login_first=True)
scraped, unscraped = scrape_posts(posts, silent=False, headers=headers, pause=10)

posts_data = [post.to_dict() for post in posts]
posts_df = pd.DataFrame(posts_data)
print(posts_df[['upload_date', 'comments', 'likes']])

标签: pythonpandasseleniumselenium-chromedriver

解决方案


您的问题缺少太多相关信息,所以我看不出是什么方法和什么代码行导致了问题,但很明显您尝试使用一些“url”,可能是driver.get(url)在您在那里提供无效数据时,可能None类型。


推荐阅读