Wyatt Grant
Wyatt Grant

Reputation: 97

python requests.get() InvalidSchema error

I'm incredibly new to python, and i'm trying to write something to get the first result returned from Google' "I'm feeling lucky" button. I have a list of 100 items I need it to get urls for. Here's what i have:

import requests

with open('2012.txt') as f:
    lines = f.readlines()

for i in range(0, 100):
    temp1 = "r'http://www.google.com/search?q=\""
    temp2 = "\"&btnI'"
    temp3 = lines[i]
    temp3 = temp3[:-1]
    temp4 = temp1+temp3+temp2
    print temp4
    var = requests.get(temp4)
    print var.url

Now if I print the value in temp4 and paste it into requests.get(), it works as I want it to. However, I get error's every time I try to pass temp4 in, instead of a hard-coded string.

Upvotes: 3

Views: 9902

Answers (1)

Alex Martelli
Alex Martelli

Reputation: 882103

Specifically, I guess you're getting:

requests.exceptions.InvalidSchema: No connection adapters were found for 'r'http://www.google.com/search?q="foo"&btnI''

(except with something else in lieu of foo:-) -- please post exceptions as part of your Q, why make us guess or need to reproduce?!

The problem is obviously that leading r' which does indeed make the string into an invalid schema (the trailing ' doesn't help either).

So, try instead something like:

temp1 = 'http://www.google.com/search?q="'
temp2 = '"&btnI'

and things should go better... specifically, when I do that (still with 'foo' in lieu of a real temp3), I get

http://en.wikipedia.org/wiki/Foobar

which seems to make sense as the top search result for "foo"!-)

Upvotes: 2

Related Questions