我正在測試美麗的湯網絡報廢工具。下面的代碼只是連接到一個subreddit並嘗試打印第一頁上來自用戶帖子的所有圖像的鏈接。Python 2.7 - 美麗的湯網Web報廢find_all命令不起作用
import requests
from bs4 import BeautifulSoup
url = "https://www.reddit.com/r/pics"
r = requests.get(url)
if r.status_code != 200:
print "failed to connect"
exit()
sourcecode = r.text
soup = BeautifulSoup(sourcecode, "html.parser")
print soup
for tag in soup.find_all('a', {'class': 'title may-blank outbound srTagged'}):
print "entered into for loop"
if tag['href'].startswith('http'):
print tag['href']
此代碼會導致正確打印soup
對象,我可以看到它。但是,soup.find_all('a', {'class':'title may-blank outbound srTagged'})
命令返回一個空列表。沒有錯誤,只有一個空列表,意味着最後的for-loop甚至不能運行。
我想知道這裏有什麼問題。我已經複製並粘貼了字符串,我可以看到我試圖在網頁源代碼1上打印的鏈接。
我指的是行:
<a class = "title may-blank outbound srTagged" ...
這我複製並粘貼到我的代碼,以避免拼寫錯誤,仍然沒有任何反應...任何想法,爲什麼命令返回一個空列表?
我已將for循環更改爲for tag in soup.find_all('a', {'class': 'thumbnail may-blank outbound'}):
,這是另一個類名,它的行爲正常。
該網站只是阻止美麗的湯訪問源代碼的部分?
你想鏈接引用的reddit線程,或者引用的圖像的外部位置? – wpercy
我正在尋找鏈接到圖像的外部位置(i.dailymail.co.uk ....等)。這個想法本來是要在reddit頁面上列出所有的圖像鏈接,然後通過一個單獨的函數來傳遞它們,它可以簡單地從鏈接列表中下載所有應該從上面的代碼輸出的鏈接的圖像。 – tdeoliveira05