2017-06-21 21 views
0

これはpythonやcomp言語には新しいですが、このコードを使ってサイトからタイトルを掻き取ろうとしていますが、タイトルやタグを置き換えた場合のように "None"存在しません。なぜ私は美しいスープでこのタグを見つけることができないのですか?

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によって生成されます。

クロールタスクを実行するときは、生のHTMLコンテンツがどのように見えるかをよりよく理解するために、javascriptを使わずにブラウザにウェブサイトを読み込む必要があります。

最後に、セレンのような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

関連する問題