<h2>代碼</h2>
<pre>
from bs4 import BeautifulSoup
import requests
headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
}
def download(url):
r = requests.get(url,headers = headers)
if r.status_code != 200:
return
filename = url.split("?")[0].split("/")[-2]
target = "./{}.jpg".format(filename)
with open (target,"wb") as fs:
fs.write(r.content)
print("%s => %s" % (url, target))
def main():
#獲取1到10頁的圖片:
for page in range(1,10):
url = 'http://weheartit.com/inspirations/taylorswift?scrolling=true&page={}.'.format(page)
r = requests.get(url, headers=headers)
#檢查是否訪問正常,正常狀態(tài)碼是200,異常則跳過
if r.status_code != 200:
continue
#解析網(wǎng)頁得到地址并下載
soup = BeautifulSoup(r.text, 'html.parser')
imgs = soup.find_all('img',class_='entry-thumbnail')
for img in imgs:
src = img.get('src')
download(src)
if name == "main":
main()
只有直接運(yùn)行腳本才會執(zhí)行main函數(shù)
</pre>
<h2>成果</h2>


<h2>總結(jié)</h2>
編寫前的思考:
1.找到異步加載數(shù)據(jù)作為啟示頁
2.請求解析
3.定位元素,這里我想做道附加題,爬取圖片鏈接后的大圖
4.篩選信息
5.爬取多頁
編寫時(shí)發(fā)現(xiàn)沒有辦法請求到相關(guān)數(shù)據(jù)。看了答案后才發(fā)現(xiàn)自己的思路與答案有很大的偏差。首先是代理問題。我的電腦上裝喲全局VPN,所有沒有填寫代理。其次是瀏覽器的偽裝,可能之前就是因?yàn)闆]有偽裝所以爬取不到數(shù)據(jù)。這次的作業(yè)主要是參考答案完成的。對于 download函數(shù)的編寫還不是很明白,主要是其中的split等方法的具體規(guī)則還不清楚。
在編寫的過程中,答案所給的網(wǎng)址是“beach”而作業(yè)要求的網(wǎng)址是“Taylor Swift”,其次答案中的地址也改變了。
<h2>反思</h2>
download函數(shù)的左右一是下載圖片,二是將下載的圖片名稱打印出來。