simple html dom failed to open stream für eine Website
Ich versuche zu analysieren, durch http://whatismyip.com Seite und meine Lage (Staat und Land). Die Daten zu sein scheint, innerhalb <table class="table">
tags, also ich bin auf der Suche nach "Tabelle".
Aber ich bekomme einen Fehler Warning: file_get_contents(https://whatismyip.com): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in C:\xampp4\htdocs\scraping\libs\simple_html_dom.php on line 1081
Kann nicht herausfinden, was falsch ist.
<?php
require_once('libs/simple_html_dom.php');
$html=new simple_html_dom();
$html->load_file('https://whatismyip.com');
$element=$html->find("table");
?>
- Sieht aus wie whatismyip.com blockt Sie ab, es zu tun
Du musst angemeldet sein, um einen Kommentar abzugeben.
Website ist die überprüfung der
User-Agent
- header der Anfrage aber PHP nicht senden (standardmäßig). Sie müssen auf "annehmen" einen browser:Bessere (und schnellere) Möglichkeit wäre die Verwendung einiger Bibliothek für diese. Ich habe GeoIP2-php vor, aber ich bin sicher, es gibt mehr.
im Grunde Ihre exemple es gut, aber der Fehler hier ist einfaches html-dom-Klassen funktioniert nicht mit Https, also versuchen Sie eine andere Methode
und verwenden Sie dann Ihre code
Bearbeiten Hinzufügen User-agent zu emulieren, ein echter navigator (Dank ShiraNai7)
User-Agent
header fehlt noch in der Anfrage.curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201');
macht dieser code funktioniert auch 🙂versuchen Sie, ändern der user-agent mit nachstehenden Befehl -
es funktioniert dann!!!