【发布时间】:2021-05-25 19:41:18
【问题描述】:
我正在编写一个新项目来提高我的 Python 技能。它获取 instagram 个人资料的数据并对其进行处理。直到现在它起作用了,我可以访问不同的页面。但我认为通过执行太多请求,服务器已将我注销。我不知道如何连接 python 请求,所以我被阻止了。 任何想法 ? 谢谢
这是我的代码:
from bs4 import BeautifulSoup
import requests
import json
import os
def get_info_insta(username):
url = f'https://www.instagram.com/{username}/'
headers = {
'User-Agent': 'Mozilla/5.0',
'email': 'email',
'pass' : 'password'
}
response = requests.get(url, headers=headers)
session = requests.Session()
session.post(url, data=headers)
soup = BeautifulSoup(response.text, features="html.parser")
title = str(soup.find("meta", property="og:description"))
print(soup)
title = title.split("-")[0]
#title = title.split("=")[1]
#title = title.split('"')[1]
return title
title = get_info_insta('javascripthub') #ewa.english javascripthub
def treat_data():
title = get_info_insta('ewa.english') #ewa.english javascripthub
#on coupe pour avoir les différentes variables
title_set = title.split(",")
title_number = len(title.split(",")) #on compte en combien de fois coupé pour savoir si il y a un chiffre en millier
pst = title_number - 1 #pour avoir dernier numéro liste
if "Followers" in title_set[0]:
title_followers = title_set[0].replace(" Followers", "") #garde juste nombre
else:
title_followers = f"{title_set[0]}{title_set[1]}".replace(" Followers", "")
title_following = title_set[1].replace(" Following", "") #garde juste nombre
if title_number >= 4: #si chiffre en millier:
title_posts = f"{title_set[pst-1]}{title_set[pst]}".replace(" Posts", "")
else: #sinon
title_posts = title_set[2].replace(" Posts", "")
print(title, ">", title_followers, ">", title_following, ">", title_posts)
【问题讨论】:
-
它被称为节流。像 instagram 这样的网站,您需要能够使用计时器来减慢访问速度。下次使用 selenium 等来抓取此类网站。
标签: python python-requests request instagram