使用 python3 requests.Session() 快速抓取
Flurry scraping using python3 requests.Session()
这看起来很简单,但出于某种原因,这没有正确连接到 Flurry,我无法抓取数据。
loginurl = "https://dev.flurry.com/secure/loginPage.do"
csvurl = "https://dev.flurry.com/eventdata"
session = requests.Session()
login = session.post(loginurl, data={'loginEmail': 'user', 'loginPassword': 'pass'})
data = session.get(csvurl)
每次我尝试使用它时,我都会被重定向回登录屏幕 (loginurl) 而没有获取新数据。以前有没有人能够像这样成功连接到flurry?
非常感谢任何帮助,谢谢。
还有两个表单字段需要填充 struts.token.name 和来自 struts.token.name 的值,即 token,还得post到loginAction.do:
您可以使用 bs4 进行初始获取并解析值,然后 post 数据:
from bs4 import BeautifulSoup
import requests
loginurl = "https://dev.flurry.com/secure/loginAction.do"
csvurl = "https://dev.flurry.com/eventdata"#
data = {'loginEmail': 'user', 'loginPassword': 'pass'}
with requests.Session() as session:
session.headers.update({
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36"})
soup = BeautifulSoup(session.get(loginurl).content)
name = soup.select_one("input[name=struts.token.name]")["value"]
data["struts.token.name"] = name
data[name] = soup.select_one("input[name={}]".format(name))["value"]
login = session.post(loginurl, data=data)
这看起来很简单,但出于某种原因,这没有正确连接到 Flurry,我无法抓取数据。
loginurl = "https://dev.flurry.com/secure/loginPage.do"
csvurl = "https://dev.flurry.com/eventdata"
session = requests.Session()
login = session.post(loginurl, data={'loginEmail': 'user', 'loginPassword': 'pass'})
data = session.get(csvurl)
每次我尝试使用它时,我都会被重定向回登录屏幕 (loginurl) 而没有获取新数据。以前有没有人能够像这样成功连接到flurry?
非常感谢任何帮助,谢谢。
还有两个表单字段需要填充 struts.token.name 和来自 struts.token.name 的值,即 token,还得post到loginAction.do:
您可以使用 bs4 进行初始获取并解析值,然后 post 数据:
from bs4 import BeautifulSoup
import requests
loginurl = "https://dev.flurry.com/secure/loginAction.do"
csvurl = "https://dev.flurry.com/eventdata"#
data = {'loginEmail': 'user', 'loginPassword': 'pass'}
with requests.Session() as session:
session.headers.update({
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36"})
soup = BeautifulSoup(session.get(loginurl).content)
name = soup.select_one("input[name=struts.token.name]")["value"]
data["struts.token.name"] = name
data[name] = soup.select_one("input[name={}]".format(name))["value"]
login = session.post(loginurl, data=data)