2017-06-14 105 views
0

我遇到類似的問題,從this後。我想創建一個函數,該函數將ratemyprofessor.com上的教授的URL,並從所有評論中獲取所有文本。但是,默認情況下,頁面只顯示前20條評論,那麼你必須以20幾個字串加載更多內容。好吧,現在,我需要創建一個函數,以最大次數加載註釋,然後獲取註釋數據。看過我在第一句話中引用的帖子後,我意識到我實際上可以從某個請求url獲得所有評論。如何查找您要查找的數據的請求URL?

雖然我不太瞭解有關製作請求的信息,但我已嘗試使用引用的帖子來連接這些點。我使用chrome開發工具嘗試尋找涉及評論的調用,但是我一直無法找到發送請求的URL,或者真的要傳遞給它以獲得我想要的內容(所有評論特別教授)。

而不是隻是要求答案,我想概括這篇文章,也試圖找到一個請求url,並從中獲取您想要的特定數據時要求的最佳做法。

1.我在找什麼請求URL?

2.如何獲取我的評論數據?

3.我可以做些什麼來發現這個呢?

我使用python,bs4和請求,按照引用的帖子推薦。

----- -----編輯

對不起,如果我不清楚,我知道如何與BS4解析HTML。這裏是我的代碼:

with requests.Session() as s: 
    s.headers.update({"User-Agent": "Mozilla/5.0 (X11; Linux x86_64)"}) 
    soup = BeautifulSoup(s.get("http://www.ratemyprofessors.com/ShowRatings.jsp?tid=433738").content) 
    yes = soup.find_all('p','commentsParagraph') 

變量yes包含頁面,這是很好的對所有的意見,但不是所有的我想要什麼。有一個腳本可以構建和格式化所有註釋塊,並將註釋傳遞給塊。這些評論是從某處申請的,我相信(根據參考文章)我可以向該地址發送請求,並獲得所有評論。我在詢問地址,以及與之相關的代碼(可能的排序查詢)以獲取所有評論。

+1

絕對沒有辦法回答這個問題。獲取特定網站數據的URL完全取決於該網站的撰寫方式。 –

+0

@Padraic_Cunn​​ingham如果你能看看我的帖子,我會很感激。 –

回答

0
from bs4 import BeautifulSoup 

import requests 

url = "http://example.com" 
#var that stores url 

request_it = requests.get(url).text 
#using the .get method from the requests module to get the page 

soup = BeautifulSoup(request_it, 'html.parser') 
# args (the html markup, parser) as parser most common : html.parser, lxml 
table = soup.find('table') 
#this will for example find one table tag and includes all tags within 
one_tablerow = table.find('tr') 
# it will find only one table row, we can use .findAll('tr') if we want ALL 
print(one_tablerow.text) #This will only print the text, sometimes we use .string if error 

基礎知識:

  1. 使用請求模塊下載網頁
  2. 使用BeautifulSoup的HTML的標記要經過標籤,並得到某些元素

    一)最通常的做法是通過樹例子: soup.find('tag').h.p.a.text例如,這將首先找到'標籤',然後.h標籤內的那個孩子那.p,那麼該標籤的孩子.a例如<a href>,然後從該標記中提取文本。

同樣重要的是要知道HTML像樹的術語和標籤,根,小孩和父母的基本知識。

還有一件事,這是一個廣泛的問題,你說你正在使用你提到的這些模塊,例如requests, BeautifulSoup但是由於您提出這些問題,您並沒有真正使用它們,因此,我強烈建議您至少每次觀看1小時的內容,因爲這比通過文檔更容易。然而,我發佈是因爲我希望這段代碼能讓你熟悉至少這個術語,當你運行這段代碼時,你將會探索更多...

+0

感謝您的回覆,請參閱我的編輯。 –