2016-10-06 77 views
1

我無法找到並返回看起來在<b>標籤中的值,在閱讀任何標籤時我沒有運氣。Python Beautifulsoup訪問標籤中的文本?

我不想發表一百行查看源代碼信息的,我不知道如何正確地張貼的鏈接,但這裏是網頁,如果你將能夠自己查看網頁源http://yugiohprices.com/card_price?name=Dark+Magician

的信息我想找回 https://postimg.org/image/5fwxfqjqf/

這裏是我使用

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 

該代碼輸出

主頁 |前100名|瀏覽卡片|瀏覽集

購買統計 |關注列表| Card Pricer

銷售我的卡片|價格提醒|博客|常見問題|設置

不管我怎麼修改或嘗試我無法訪問「LDK2-ENY10」文本

+0

這是我的第一篇文章,所以要溫柔,讓我知道什麼樣的信息,我可以添加如果有的話幫你幫我:) – Chrisp

+0

請檢查[問],更具體地說,[mcve]。正如那裏所建議的那樣,請提供一個簡短,完整,自包含的程序來說明問題。在你的情況下,你不需要'請求'來證明問題,但你確實需要一個簡短的HTML代碼片段,預期的輸出和程序的實際輸出。 –

+0

您尋找的字符串可能實際上並不在HTML中。很可能該字符串稍後通過Javascript代碼插入,可能使用AJAX。請提供網址,以便有人可以確認。 –

回答

2

可以看到頁面需要一段時間來加載數據,通過一個Ajax請求所請求的數據,從而什麼請求返回不是你在瀏覽器中看到的。你可以模仿一個簡單的GET來http://yugiohprices.com/get_card_prices/Dark+Magician Ajax請求,傳遞時間戳

import requests 
from time import time 

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

print(r.content) 

你會看到給大家介紹了卡的細節,所以要得到你想要什麼只要找到錨?HREF開始/browse_sets設置

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

對不起花了這麼長時間來標記它已解決..我仍然在學習>。< – Chrisp

相關問題