Python批量下載今日頭條街拍美圖
大家好,歡迎來到 Crossin的編程教室 ! 在以前的文章中我們學了Ajax數(shù)據(jù)爬取,這篇文章我們以今日頭條為例,通過分析Ajax請求來抓取今日頭條的街拍美圖,并將圖片下載到本地保存下來。準備好沒,我們現(xiàn)在開始!
02
網(wǎng)頁分析






03
爬蟲實戰(zhàn)

def get_page(page_num):
global headers
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
}
params = {
'keyword':urllib.parse.unquote('%E8%A1%97%E6%8B%8D'),
'pd':'atlas',
'dvpf':'pc',
'aid':4916,
'page_num':page_num,
'search_json':'%7B%22from_search_id%22%3A%22202106100003510102121720341003A4ED%22%2C%22origin_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%2C%22image_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%7D',
'rawJSON': 1,
'search_id':'202106100004290101500200495C05B763'
}
url='https://so.toutiao.com/search?'+urlencode(params)
try:
response=requests.get(url,headers=headers,params=params)
if response.status_code==200:
return response.json()
except requests.ConnectionError:
return None
def get_images(json):
images=json.get('rawData').get('data')
for image in images:
link = image.get('img_url')
yield link
def saving_img(link):
global name
print(f'-------正在打印第{name}張圖片')
data=requests.get(link,headers=headers).content
with open(f'image1/{name}.jpg','wb')as f:
f.write(data)
name+=1
def main(paga_num):
json=get_page(paga_num)
for link in get_images(json):
saving_img(link)
if __name__ == '__main__':
for i in range(0,2):
main(i)

04
小結

05
源碼領取

獲取本文相關代碼、數(shù)據(jù)及演示地址,請點擊下方公眾號名片,回復關鍵字
頭條
如果文章對你有幫助,歡迎轉發(fā)/點贊/收藏~
作者:霖hero(在職爬蟲工程師,熟悉JS逆向與分布式爬蟲。喜歡鉆研,熱愛學習,樂于分享)
_往期文章推薦_
評論
圖片
表情
