2016-10-06 3 views
1

Ich habe Probleme, den Wert zu finden und zurückzugeben, der im <b>-Tag zu sein scheint, ich habe kein Glück beim Lesen eines der Tags.Python Beautifulsoup Zugangstext in Tags?

Ich will nicht hundert Zeilen der Ansicht-Quelle Informationen und bin mir nicht sicher stellen, wie man richtig auf den Link, um es zu schreiben, aber hier ist die Webseite, wenn Sie sich der Seite Quelle zu sehen wären in der Lage http://yugiohprices.com/card_price?name=Dark+Magician

die Informationen ich versuche https://postimg.org/image/5fwxfqjqf/

Hier abzurufen ist der Code, den ich

import requests 
from bs4 import BeautifulSoup 
r = requests.get('http://yugiohprices.com/card_price?name=Dark+Magician'); 
soup = BeautifulSoup(r.content, "lxml") 
print soup.find('b').text 

bin mit ist dies der Ausgangs

Zum Anfang | Top 100 | Karten durchsuchen Browse Sets

Kaufstatistik | Beobachtungsliste | Karte Pricer

Verkaufen Meine Karten | Preisalarme | Blog | FAQ | Einstellungen

Egal, was ich ändern oder versuche ich bin nicht in der Lage, die „LDK2-ENY10“ text zugreifen

+0

Dies ist mein erster Beitrag so sanft, und lassen Sie mich wissen, welche Informationen ich hinzufügen kann, wenn eine Sie, mir helfen helfen :) – Chrisp

+0

Bitte überprüfen Sie [fragen] und genauer gesagt [mcve]. Wie dort vorgeschlagen, geben Sie bitte ein kurzes, vollständiges, in sich geschlossenes Programm an, das das Problem veranschaulicht. In Ihrem Fall benötigen Sie keine "Anfragen", um das Problem zu demonstrieren, aber Sie benötigen ein kurzes HTML-Snippet, die erwartete Ausgabe und die tatsächliche Ausgabe Ihres Programms. –

+0

Es ist wahrscheinlich, dass die gesuchte Zeichenfolge nicht im HTML-Code enthalten ist. Es ist wahrscheinlich, dass die Zeichenfolge später von JavaScript-Code eingefügt wird, wahrscheinlich mit AJAX. Bitte geben Sie die URL an, damit jemand dies bestätigen kann. –

Antwort

2

Sie können sehen, die Seite dauert eine Weile, um die Daten zu laden, werden die Daten durch einen Ajax-Request angefordert, so Was Anfragen zurückgeben, ist nicht das, was Sie in Ihrem Browser sehen. Sie können den Ajax-Request mit einem einfachen get http://yugiohprices.com/get_card_prices/Dark+Magician imitieren, einen Zeitstempel vorbei:

import requests 
from time import time 

r = requests.get("http://yugiohprices.com/get_card_prices/Dark+Magician?_={}".format(int(time()))) 

print(r.content) 

, die Sie sehen werden gibt Ihnen alle Details über die Karte, so zu bekommen, was Sie gerade die Anker finden wollen ? mit dem href mit /browse_sets Start gesetzt:

In [1]: import requests 
    ...: from time import time 
    ...: from bs4 import BeautifulSoup 
    ...: 
    ...: r = requests.get("http://yugiohprices.com/get_card_prices/Dark+Magician? 
    ...: _={}".format(int(time()))) 
    ...: soup = BeautifulSoup(r.content, "lxml") 
    ...: print(soup.select_one("a[href^=/browse_sets?set]").text) 
    ...: 
Legendary Decks II 

In [2]: 
+0

Sorry, es dauerte so lange, um es als gelöst zu markieren .. Ich lerne immer noch>. < – Chrisp

Verwandte Themen