python - 如何从登录是弹出框的页面中抓取数据
问题描述
我想从我拥有登录凭据的网页( urbanation.ca )上刮取数据。我的登录允许我以 Excel 表格的形式下载数据,但这需要很长时间。这就是为什么我想从中刮取数据。
现在,我确实看到了很多帖子,其中告诉您当网站要求您登录时如何抓取它。但是,就我而言,登录是网页上的一个按钮,单击该按钮会打开一个弹出窗口,要求输入登录凭据。我该如何处理?
import requests
import re
r = requests.get('https://www.urbanation.ca', proxies={'http':'50.207.31.221:80'}).text
payload = {'name': 'username', 'pass': 'password'}
POST_LOGIN_URL = 'https://www.urbanation.ca'
REQUEST_URL = 'https://www.urbanation.ca/urbanation/project/1/view'
with requests.Session() as session:
post = session.post(POST_LOGIN_URL, data=payload)
r = session.get(REQUEST_URL)
print(r.text)
我知道我没有正确的 post_login_url 变量条目,因为我不知道在哪里发布我的凭据。
解决方案
以下对我有用。正如 Stivan 在评论中所说,您真的应该考虑从帖子中删除您的登录信息。
import requests
data = {
'name': 'EMAIL HERE',
'pass': 'PASSWORD HERE',
'form_id': 'user_login_block',
'op': 'login <span class="teal m1_arrow arrow-right"></span>',
}
url = 'https://www.urbanation.ca/fp2018?destination=fp2018'
r = requests.post(url, data=data)
print(r.text)
推荐阅读
- php - 根据不同的按钮提交动态获取数据
- python - 重新发生事件的概率
- c++ - GCC/Clang 不会生成临时对象
- javascript - 怎么做简单
没有工作 在 AngularJS 材料中? - c++ - 当元素数> 1000时,如何制作向量的笛卡尔积?
- python - python生成的我的SQL语法有什么问题?
- reactjs - 从 tsx 文件中的 controllerApi 方法检索数据 [Module Parse failed 错误]
- java - 在 Google Cloud Storage 中创建存储桶有时会失败
- javascript - Stripe - PaymentIntents handleCardPayment() - 如何捕捉 JS 错误?
- vue.js - vuejs:从子dataAttr调用父函数