【发布时间】:2021-05-21 00:01:04
【问题描述】:
错误:InvalidArgumentException:无效参数:'url' 必须是字符串
我正在尝试在 Mac 上使用 Instascrape 抓取特定的 Instagram 个人资料以获取上传日期、cmets 和喜欢的数据。我的代码基于尝试重现 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']])
【问题讨论】:
标签: python pandas selenium selenium-chromedriver