2016-05-11 3 views
0

Ich versuche zu kratzen this webpage. Dieser Code funktioniert:Python: Was wird zurückgegeben, wenn ich requests.get ('url') und print r.text verwende?

import requests 
header = { 
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0', 
} 
r = requests.get('http://www.machinefinder.com/ww/en-US/categories/used-drawn-planters', headers=header) 
print r.text 

aber ich bin mir nicht sicher, was der Text, den es wirklich zurückgibt. Ich wünschte, es wäre JSON, damit ich andere Beispiele kopieren könnte, die JSON parsen.

Hinweis: meine Arbeit Sicherheit blockiert die Webseite und sagt: „Illegale Web Browser“, wenn ich

header={ 
      'Content-Type': 'application/json;charset=UTF-8', 
     } 

verwenden, weshalb ich Firefox stattdessen bin mit.

+0

Überprüfen Sie 'r.headers ['content-type']' für den Typ. Wahrscheinlich "text/html" wenn ich raten musste. – kindall

+0

Sie können je nach Anfrage json zurück –

Antwort

0

Sie können keine beliebige Website erhalten, um eine JSON formatierte Daten zurückzugeben, es sei denn, es bietet eine Möglichkeit, eine JSON formatierte Daten anzufordern (und zurück ..).

r.text wird im Allgemeinen den Quellcode der Website enthalten, es sei denn, es wurden erneut JSON Daten zurückgegeben.

Also müssen Sie auf andere Mittel zum Parsen von Websites, wie BeautifulSoup zurückgreifen.

+0

Vielen Dank für die BeautifulSoup Vorschlag. Ich ging davon aus, dass das Problem nicht darin bestand, dass die Website 'JSON'-formatierte Daten zurückgeben konnte, weil [dieser Typ auf GitHub es konnte.] (Https://github.com/thayton/machinefinder/blob/master/scraper .py) – forest

Verwandte Themen