Suche url - http://aptaapps.apta.org/findapt/Default.aspx?UniqueKey=.Falsche Antwort von Post-Anfrage mit Anfragen
Benötigen Sie Daten für die Postleitzahl (10017) Senden von Postanfragen, aber ich bekomme die Suchseite (Antwort von der Such-URL), aber nicht die Seite mit Ergebnissen.
Mein Code:
# -*- coding: UTF-8 -*-
import requests
from bs4 import BeautifulSoup, element
search_url = "http://aptaapps.apta.org/findapt/Default.aspx?UniqueKey="
session = requests.Session()
r = session.get(search_url)
post_page = BeautifulSoup(r.text, "lxml")
try:
target_value = post_page.find("input", id="__EVENTTARGET")["value"]
except TypeError:
target_value = ""
try:
arg_value = post_page.find("input", id="__EVENTARGUMENT")["value"]
except TypeError:
arg_value = ""
try:
state_value = post_page.find("input", id="__VIEWSTATE")["value"]
except TypeError:
state_value = ""
try:
generator_value = post_page.find("input", id="__VIEWSTATEGENERATOR")["value"]
except TypeError:
generator_value = ""
try:
validation_value = post_page.find("input", id="__EVENTVALIDATION")["value"]
except TypeError:
validation_value = ""
post_data = {
"__EVENTTARGET": target_value,
"__EVENTARGUMENT": arg_value,
"__VIEWSTATE": state_value,
"__VIEWSTATEGENERATOR": generator_value,
"__EVENTVALIDATION": validation_value,
"ctl00$SearchTerms2": "",
"ctl00$maincontent$txtZIP": "10017",
"ctl00$maincontent$txtCity": "",
"ctl00$maincontent$lstStateProvince": "",
"ctl00$maincontent$radDist": "1",
"ctl00$maincontent$btnSearch": "Find a Physical Therapist"
}
headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4",
"Cache-Control": "max-age=0",
"Content-Length": "3025",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "aptaapps.apta.org",
"Origin": "http://aptaapps.apta.org",
"Proxy-Connection": "keep-alive",
"Referer": "http://aptaapps.apta.org/findapt/default.aspx?UniqueKey=",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
}
post_r = session.post(search_url, data=post_data, headers=headers)
print(post_r.text)
Hallo Kingname, danke für deine Antwort. Der Datentyp ist "x-www-form-urlencoded", also ist der Parameter korrekt, aber der Code funktioniert nicht. P.S .: Ich habe versucht, es zu json zu ändern. Funktioniert nicht. – GiveItAwayNow
OK, 1. Entfernen Sie "Content-Length": "3025" aus Ihren Kopfzeilen. und versuchen Sie es erneut. 2. Wenn Schritt 1 immer noch nicht funktionieren kann, installieren Sie bitte Postbote und versuchen Sie es zu verwenden, um zu finden, ob es die richtige Anfrage stellen kann. – Kingname
1. Funktioniert nicht. 2. Ich habe es installiert, aber es funktioniert auch nicht. – GiveItAwayNow