2017-07-12 5 views
1

J'essaye de gratter le Web, voici mon code.Comment réparer une erreur HTTP 400: Bad Request dans Python 3?

Pour une raison quelconque, je reçois erreur HTTP 400: Mauvaise demande, je n'ai jamais eu cela avant.

Des idées?

Voici mon code:

import urllib.request 
import re 

url = ('https://www.myvue.com/whats-on') 

req = urllib.request.Request(url, headers={'User Agent': 'Mozilla/5.0'}) 

def main(): 

    html_page = urllib.request.urlopen(req).read() 

    content=html_page.decode(errors='ignore', encoding='utf-8') 

    headings = re.findall('<th scope="col" abbr="(.*?)">', content) 

    print(headings) 

main() 

Répondre

6

Fix votre en-tête:

req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'}) 

Il est User-Agent, pas User Agent. En outre, je recommanderais de passer au module requests.

html_page = requests.get(url, {'User-Agent': 'Mozilla/5.0'}).text 

Ceci est l'équivalent de trois lignes de urllib et beaucoup plus facile à lire. En outre, il décode automatiquement le contenu pour vous.

+0

Merci, je me suis débarrassé de l'erreur HTTP 400, mais le code n'exécute pas mon regex pour une raison quelconque, en ne renvoyant que '[]'. Désolé pour les questions! Seulement juste apprendre! – Jdsmith

+0

@Jdsmith C'est une question différente, et mérite un autre post. Marquez ceci accepté, fermez-le, et ouvrez-en un autre :) –

+0

@Jdsmith Aussi, comme une note rapide, je vous recommande fortement de regarder [this] (https://www.crummy.com/software/BeautifulSoup/bs4/doc /). –