You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python登录后爬取alertasubastas.com网站的技术求助

解决登录alertasubastas.com后爬取内容的问题

看起来你在尝试用requests会话登录alertasubastas.com时遇到了阻碍,我来帮你梳理几个常见的问题点和改进方案:

1. 补全请求头,避免被反爬拦截

很多网站会校验请求头里的User-Agent(标识客户端类型),默认requests的UA太像爬虫,容易被拦截。你可以添加模拟浏览器的请求头:

import requests

# 模拟Chrome浏览器的请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
    'Referer': 'https://alertasubastas.com/login'  # 告诉服务器请求来自登录页,更符合真实行为
}

payload = {'action': 'login', 'email': 'mail@gmail.com', 'password':'drowssap'}
c = requests.session()
# 带上headers发送POST请求
response = c.post('https://alertasubastas.com/login', data=payload, headers=headers)

2. 处理CSRF令牌(最常见的登录失败原因)

大多数现代网站都会用CSRF令牌防止跨站请求伪造,你直接提交账号密码很可能因为缺少令牌被拒绝。解决步骤是:

  • 先GET登录页面,获取页面中的CSRF令牌
  • 把令牌加入payload再提交登录请求

示例代码(需要先安装beautifulsoup4:pip install beautifulsoup4):

import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}

c = requests.session()
# 先访问登录页,获取cookie和CSRF令牌
login_page = c.get('https://alertasubastas.com/login', headers=headers)
soup = BeautifulSoup(login_page.text, 'html.parser')

# 从页面中提取CSRF令牌(注意:这里的name属性值可能是_token、csrf_token等,需要根据实际页面调整)
csrf_token = soup.find('input', {'name': '_token'})['value']

# 更新payload,加入令牌
payload = {
    'action': 'login',
    'email': 'mail@gmail.com',
    'password':'drowssap',
    '_token': csrf_token
}

# 提交登录请求
response = c.post('https://alertasubastas.com/login', data=payload, headers=headers)

3. 验证登录是否成功

提交请求后,一定要检查响应状态和内容,判断登录是否成功:

# 打印响应状态码,200表示请求成功,但不代表登录成功
print("响应状态码:", response.status_code)
# 打印响应文本,查看是否有登录成功的提示或跳转页面
print("响应内容:", response.text)

如果返回的还是登录页面,说明登录失败,可能是令牌名称不对、密码错误,或者还有其他隐藏参数需要提交(可以用浏览器F12的Network标签查看真实登录请求的Form Data)。

4. 极端情况:用浏览器模拟工具绕过反爬

如果网站有复杂的JS验证(比如动态生成参数、验证码),requests这类HTTP库很难模拟,这时候可以用selenium或playwright模拟真实浏览器操作:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化Chrome浏览器(需要下载对应版本的chromedriver)
driver = webdriver.Chrome()
driver.get('https://alertasubastas.com/login')

# 等待邮箱输入框加载完成,输入账号
email_input = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.NAME, 'email'))
)
email_input.send_keys('mail@gmail.com')

# 输入密码
password_input = driver.find_element(By.NAME, 'password')
password_input.send_keys('drowssap')

# 点击登录按钮(可以根据实际按钮的选择器调整,比如ID、XPath)
login_button = driver.find_element(By.XPATH, '//button[@type="submit"]')
login_button.click()

# 登录成功后,就可以获取页面源码进行爬取了
page_source = driver.page_source
# 后续爬取逻辑...

# 关闭浏览器
driver.quit()

最后提醒:爬取前请务必查看网站的robots.txt和使用条款,确保你的爬取行为符合网站规定,避免法律风险。

内容的提问来源于stack exchange,提问作者Nabhan Abdulla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:40:10