python - 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']])
解决方案
您的问题缺少太多相关信息,所以我看不出是什么方法和什么代码行导致了问题,但很明显您尝试使用一些“url”,可能是driver.get(url)
在您在那里提供无效数据时,可能None
类型。
推荐阅读
- javascript - 如何在没有硬编码的情况下有效地在 react-google-charts 中传递数据?
- python - 删除元组外的数据框行
- php - WordPress 中的 username_exists 函数抛出 500 错误(函数未定义),尽管需要/包含 pluggable.php 和 user.php
- php - 无法选择 *(ORA-00932:不一致的数据类型:预期的 CHAR 得到了 ADT)
- tensorflow - 读取用于编码的特征未知的 TFRecord 文件
- python - 使用矩形边界框将图像切成文本行
- android - android webview中未显示“选择证书”对话框
- bash - FFMPEG:通过 RTP 的 32 通道流式麦克风
- powershell - 重新启动 powershell 脚本
- python - Scrapy/Django - PyCharm 调试器 - 无法导入模型