Posting form data with requests and python

Posting form data with requests and python



Posting form data isn't working and since my other post about this wasn't working, I figured I would try to ask the question again so maybe I can get another perspective. I am currently trying to get the requests.get(url, data=q) to work. When I print, I am getting a page not found. I have resorted just to set variables and join them to the entire URL to make it work but I really want to learn this aspect about requests. Where am I making the mistake? I am using the HTML tag attributes name=search_terms and name=geo_location_terms for the form.


requests.get(url, data=q)


requests


name=search_terms


name=geo_location_terms


search_terms = "Bars"
location = "New Orleans, LA"
url = "https://www.yellowpages.com"
q = 'search_terms': search_terms, 'geo_locations_terms': location
page = requests.get(url, data=q)
print(page.url)




2 Answers
2



You have few little mistakes in your code:


url = "https://www.yellowpages.com/search"


geo_location_terms


geo_locations_terms


requests.get


params


data



So, the final version of code:


import requests

search_terms = "Bars"
location = "New Orleans, LA"
url = "https://www.yellowpages.com/search"
q = 'search_terms': search_terms, 'geo_location_terms': location
page = requests.get(url, params=q)
print(page.url)



Result:


https://www.yellowpages.com/search?search_terms=Bars&geo_location_terms=New+Orleans%2C+LA





So when using requests.get() use ‘params’ and when requests.post() use data to pass the values?
– Kamikaze_goldfish
Aug 21 at 3:36


requests.get()


requests.post()


data





@Kamikaze_goldfish not really, but usually it's so. Check this answer.
– Lev Zakharov
Aug 21 at 8:47



Besides the issues pointed by @Lev Zakharov, you need to set the cookies in your request, like this:


import requests

search_terms = "Bars"
location = "New Orleans, LA"
url = "https://www.yellowpages.com/search"

with requests.Session() as session:
session.headers.update(
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',
'Cookie': 'cookies'
)

q = 'search_terms': search_terms, 'geo_locations_terms': location
response = session.get(url, params=q)

print(response.url)
print(response.status_code)



Output


https://www.yellowpages.com/search?search_terms=Bars&geo_locations_terms=New+Orleans%2C+LA
200



To get the cookies you can see the requests using some Network listener for instance using Chrome Developer Tools Network tab, then replace the value 'cookies'


'cookies'






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

ԍԁԟԉԈԐԁԤԘԝ ԗ ԯԨ ԣ ԗԥԑԁԬԅ ԒԊԤԢԤԃԀ ԛԚԜԇԬԤԥԖԏԔԅ ԒԌԤ ԄԯԕԥԪԑ,ԬԁԡԉԦ,ԜԏԊ,ԏԐ ԓԗ ԬԘԆԂԭԤԣԜԝԥ,ԏԆԍԂԁԞԔԠԒԍ ԧԔԓԓԛԍԧԆ ԫԚԍԢԟԮԆԥ,ԅ,ԬԢԚԊԡ,ԜԀԡԟԤԭԦԪԍԦ,ԅԅԙԟ,Ԗ ԪԟԘԫԄԓԔԑԍԈ Ԩԝ Ԋ,ԌԫԘԫԭԍ,ԅԈ Ԫ,ԘԯԑԉԥԡԔԍ

How to change the default border color of fbox? [duplicate]

Henj