作業(yè):1.4

<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>

Paste_Image.png
Paste_Image.png

<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ù)的左右一是下載圖片,二是將下載的圖片名稱打印出來。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容