我试图使用请求库登录www.ebay-kleinanzeigen.de,但是每次尝试发布数据时(在注册页面上与登录页面相同),我都收到403错误
这是注册功能的代码:
import requests
from bs4 import BeautifulSoup
session = requests.Session()
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
headers = {'user-agent': user_agent, 'Referer': 'https://www.ebay-kleinanzeigen.de'}
with requests.Session() as c:
url = 'https://www.ebay-kleinanzeigen.de/m-benutzer-anmeldung.html'
c.headers = headers
hp = c.get(url, headers=headers)
soup = BeautifulSoup(hp.content, 'html.parser')
crsf = soup.find('input', {'name': '_csrf'})['value']
print(crsf)
payload = dict(email='test.email@emailzz1.de', password='test123', passwordConfirmation='test123',
_marketingOptIn='on', _crsf=crsf)
page = c.post(url, data=payload, headers=headers)
print(page.text)
print(page.url)
print(page.status_code)
是否需要更多头文件?用户代理和引荐来源不够吗?
我尝试添加所有请求的标头,但随后没有任何响应。
答案 0 :(得分:1)
我设法创建了一个脚本,该脚本将成功完成您尝试使用mechanicalsoup
library填写的注册表。请注意,您将必须手动检查您的电子邮件帐户,以查看他们发送给您的电子邮件以完成注册。
我意识到这并没有真正回答为什么BeautifulSoup返回403禁止错误的问题,但是它确实完成了您的任务而没有遇到相同的错误。
import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open("https://www.ebay-kleinanzeigen.de/m-benutzer-anmeldung.html")
browser.select_form('#registration-form')
browser.get_current_form().print_summary()
browser["email"] = "mailuser@emailprovider.com"
browser["password"] = "testSO12345"
browser["passwordConfirmation"] = "testSO12345"
response = browser.submit_selected()
rsp_code = response.status_code
#print(response.text)
print("Response code:",rsp_code)
if(rsp_code == 200):
print("Success! Opening a local debug copy of the page... (no CSS formatting)")
browser.launch_browser()
else:
print("Failure!")