gpt4 book ai didi

python - 如何为 subreddit 构建网页抓取功能?

转载 作者:太空宇宙 更新时间:2023-11-03 19:49:11 25 4
gpt4 key购买 nike

摘要:我想网络抓取 subreddit,然后将数据转换为数据帧。我知道如何单独完成它们。但我坚持使用一个函数。下面是我一一的做法。

url = 'https://api.pushshift.io/reddit/search/submission'

params3 = {'subreddit':'Apple', 'size': 500,'before':1579411194}
res3 = requests.get(url, params3)
data = res3.json()
post3 = data['data']
apdf3 = pd.DataFrame(post3)

这是我迄今为止想到的函数:

url = 'https://api.pushshift.io/reddit/search/submission'
def webscrape (subreddit, size,):
for i in range(1, 11):
params = {"subreddit":subreddit, 'size':size, 'before': f'post{i}'[-1]['created_utc']}
res = requests.get(url, params)
f'data{i}' = res.json()
f'post{i}' = data[f'data{i}']
f'ap_df{i}' = pd.DataFrame(f'post{i})

我的问题是我的第一个参数不需要“before”。但是在创建“帖子”之后,我需要使用“之前”才能获取早于上一个操作的最后一个帖子的所有帖子。如何调和这种冲突?

非常感谢!

最佳答案

您所要求的是可行的,但我认为 f 字符串在这里不起作用。下面的代码将每个数据帧附加到数据帧字典中。尝试一下,看看是否有效:

d = {}
url = 'https://api.pushshift.io/reddit/search/submission'
def webscraper (subreddit, size,):
bef = 0
for i in range(1, 11):
if i==1:
params = {"subreddit":subreddit, 'size':size}
else:
params = {"subreddit":subreddit, 'size':size, 'before': bef}
res = requests.get(url, params)
data = res.json()
dat = data['data']
bef = dat[-1]['created_utc']
df_name = subreddit+str(i)
d[df_name] = pd.DataFrame(dat)

关于python - 如何为 subreddit 构建网页抓取功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59940355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com