J'ai un programme qui lit certaines URL depuis un fichier texte, obtient la source de la page avec requests.get, puis utilise beautifulsoup4 pour trouver des informations.requests.get retourne 400 mauvaises url quand on leur donne une variable contenant une URL, mais pas quand on leur donne une chaîne avec la même URL
f = open('inputfile.txt')
session = requests.Session()
session.headers.update({'User-Agent': 'Mozilla/5.0'})
for line in f:
x = 0
z = len(line)
r = session.get(line[x:z])
soup = bs4.BeautifulSoup(r.text, "html.parser")
Ceci renvoie une demande incorrecte HTTP 400 - URL non valide. Cependant, quand je fais la même chose sauf taper dehors l'URL comme chaîne, tout fonctionne (bien que j'aie seulement une URL).
f = open('inputfile.txt')
session = requests.Session()
session.headers.update({'User-Agent': 'Mozilla/5.0'})
for line in f:
r = session.get('http://www.ExactSameUrlAsEarlier.com')
soup = bs4.BeautifulSoup(r.text, "html.parser")
Comment pourrais-je corriger/modifier cela me permet de faire défiler les différentes URL que j'ai dans le fichier? Juste pour clarifier, c'est ce que le inputfile.txt ressemble:
http://www.url1.com/something1
http://www.url2.com/something2
etc.
Merci à l'avance.
s'il n'y a qu'une seule URL dans le ' 'inputfile.txt'' Est-ce qu'il vous donne encore un 400? Etes-vous également déconnecté 'line [x: z]', juste pour vous assurer que c'est une URL valide qui est retirée? –
Oui, j'ai enregistré la sortie de 'line [x: z]', elle renvoie une adresse valide. Quand je copie l'url que 'line [x: z]' contient directement dans l'instruction 'requests.get()', cela fonctionne. Je n'ai pas essayé avec une seule URL dans le fichier d'entrée, je vais essayer de voir comment cela fonctionne –