2017-06-21 98 views
0

即時通訊新的python,或任何comp語言的事情,但即時通訊嘗試刮從使用此代碼的網站標題,但它一直打印「無」,如果標題,或任何標籤,如果我取代它,doesn不存在。爲什麼我不能在美麗的湯中找到這個標籤?

import bs4 
from urllib.request import urlopen as uReq 
from bs4 import BeautifulSoup as soup 


my_url = "https://www.roblox.com/catalog/?CatalogContext=1&Keyword=the%20item&SortAggregation=5&LegendExpanded=true&Category=2" 
uClient = uReq(my_url) 
page_html = uClient.read() 
uClient.close() 
page_soup = soup(page_html, "html.parser") 

ttt = page_soup.find("div", {"class":"CatalogItemName notranslate"}) 
item = ttt.a.text 
print(item) 

回答

1

您正在查找的內容不在從服務器收到的http響應中。它在頁面加載後由javascript生成。

在執行抓取任務時,您應該始終在瀏覽器中加載網站而不使用JavaScript,以便更好地瞭解原始html內容的樣子。

最後,您可以通過使用像selenium這樣的JavaScript支持的抓取工具解決此問題。

0

當你想找到使用多個類的元素,我認爲以下是約定。

soup.find("div", {'class':['CatalogItemName', 'notranslate']}) 
-1

如果你想在HTML頁面的標題試試這個

import urllib.request 
from bs4 import BeautifulSoup 
import pandas as pd 

url = "https://www.roblox.com/catalog/?CatalogContext=1&Keyword=the%20item&SortAggregation=5&LegendExpanded=true&Category=2"; 
page = urllib.request.urlopen(url); 

soup = BeautifulSoup(page, 'html.parser'); 


print(soup.title) 
+0

這不回答這個問的問題。他正在將頁面內容加入到BeautifulSoup中... – Baldrickk

+0

@Baldrickk他說他試圖從網站上刮掉一個標題,但無法做到這一點 –

+0

他正試圖獲得「一個標題」,而不是頁面標題。 – VMRuiz