最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

爬取今日頭條Ajax請求

 更新時間:2018年10月19日 09:03:05   作者:回憶不說話  
今天小編就為大家分享一篇關(guān)于爬取今日頭條Ajax請求的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

網(wǎng)址:https://www.toutiao.com/

搜索頭條

可以得到這個網(wǎng)址:

https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D

開發(fā)者工具查看:

我們在搜索中并沒有發(fā)現(xiàn)上面的文字,那么我們可以初步判定,這個由Ajax加載,然后渲染出來的。此時切換到xhr過濾,可以看到確實是ajax請求。

觀察請求的特點,發(fā)現(xiàn)只有offset是改變的,而且一次加20,。

我們可以用它來控制數(shù)據(jù)分頁,然后把圖片下載下來。代碼如下:

import requests
import os
from urllib.parse import urlencode
from hashlib import md5
from multiprocessing.pool import Pool
from requests import codes
def get_page(offset):
  params = {
    "offset":offset,
    "format":"json",
    "keyword":"街拍",
    "autoload":"true",
    "count":"20",
    "cur_tab":"1",
    "from":"search_tab"
  }
  url = 'https://www.toutiao.com/search_content/?'+urlencode(params)
  try:
    response = requests.get(url)
    if response.status_code == 200:
      # print(url)
      return response.json()
  except requests.ConnectionError:
    return None
# get_page(0)
def get_images(json):
  if json.get('data'):
    for item in json.get('data'):
      if item.get('cell_type') is not None:
        continue
      title = item.get('title')
      images = item.get('image_list')
      for image in images:
        yield {
          'title':title,
          'image':'https:' + image.get('url'),
        }
def save_image(item):
  #os.path.sep  路徑分隔符‘//'
  img_path = 'img' + os.path.sep + item.get('title')
  if not os.path.exists(img_path):
    os.makedirs(img_path)
  try:
    resp = requests.get(item.get('image'))
    # print(type(resp))
    if codes.ok == resp.status_code:
      file_path = img_path + os.path.sep + '{file_name}.{file_suffix}'.format(
        file_name=md5(resp.content).hexdigest(),#md5是一種加密算法獲取圖片的二進制數(shù)據(jù),以二進制形式寫入文件
        file_suffix='jpg')
      if not os.path.exists(file_path):
        with open(file_path,'wb')as f:
          f.write(resp.content)
          print('Downladed image path is %s' % file_path)
      else:
        print('Already Downloaded',file_path)
  except requests.ConnectionError:
    print('Failed to Save Image,item %s' % item)
def main(offset):
  json = get_page(offset)
  for item in get_images(json):
    print(item)
    save_image(item)
GROUP = 0
GROUP_END = 2
if __name__ == '__main__':
  pool = Pool()
  groups = ([x*20 for x in range(GROUP,GROUP_END)])
  pool.map(main,groups)  #將groups一個個調(diào)出來傳給main函數(shù)
  pool.close()
  pool.join()   #保證子進程結(jié)束后再向下執(zhí)行 pool.join(1) 等待一秒

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • asp+Ajax簡單客戶登陸驗證

    asp+Ajax簡單客戶登陸驗證

    asp+Ajax簡單客戶登陸驗證...
    2007-03-03
  • bootstrap select2 動態(tài)從后臺Ajax動態(tài)獲取數(shù)據(jù)的代碼

    bootstrap select2 動態(tài)從后臺Ajax動態(tài)獲取數(shù)據(jù)的代碼

    這篇文章主要介紹了bootstrap select2 動態(tài)從后臺Ajax動態(tài)獲取數(shù)據(jù)的代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Ajax基礎(chǔ)使用詳解

    Ajax基礎(chǔ)使用詳解

    這篇文章主要介紹了Ajax基礎(chǔ)使用詳解,是前后臺交互的能? 也就是我們客戶端給服務(wù)端發(fā)送消息的?具,以及接受響應(yīng)的?具,本篇就來對ajax基礎(chǔ)進行詳細講解,需要的朋友可以參考下
    2023-05-05
  • FormData+Ajax實現(xiàn)上傳進度監(jiān)控

    FormData+Ajax實現(xiàn)上傳進度監(jiān)控

    FormData類型其實是在XMLHttpRequest 2級定義的,它是為序列化表以及創(chuàng)建與表單格式相同的數(shù)據(jù)(當(dāng)然是用于XHR傳輸)提供便利。接下來通過本文給大家分享FormData+Ajax實現(xiàn)上傳進度監(jiān)控,需要的朋友一起看看吧
    2017-11-11
  • Ajax請求發(fā)送成功但不進success的解決方法

    Ajax請求發(fā)送成功但不進success的解決方法

    下面小編就為大家分享一篇Ajax請求發(fā)送成功但不進success的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Ajax 上傳圖片并預(yù)覽的簡單實現(xiàn)

    Ajax 上傳圖片并預(yù)覽的簡單實現(xiàn)

    下面小編就為大家?guī)硪黄狝jax 上傳圖片并預(yù)覽的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • ajax內(nèi)部值外部調(diào)用不了的原因及解決方法

    ajax內(nèi)部值外部調(diào)用不了的原因及解決方法

    下面小編就為大家?guī)硪黄猘jax內(nèi)部值外部調(diào)用不了的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • AJAX 驗證框架13個

    AJAX 驗證框架13個

    眾所周知,驗證,最好是在客戶端盡量解決,以降低服務(wù)端資源開銷;在目前AJAX流行的今天,基于AJAX的驗證更能夠為客戶端驗證提供豐富的機制和美觀的交互效果。本文收集了13個比較通用的AJAX驗證框架,與大家分享!
    2009-08-08
  • html+ajax實現(xiàn)上傳大文件功能

    html+ajax實現(xiàn)上傳大文件功能

    這篇文章主要為大家詳細介紹了html+ajax實現(xiàn)上傳大文件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • jQuery中ajax - post() 方法實例詳解

    jQuery中ajax - post() 方法實例詳解

    在jquery中的ajax有二個數(shù)據(jù)發(fā)送模式,一種是get,另一種是post(),下面我來給大家介紹介紹,有需要了解的朋友可參考
    2015-09-09

最新評論

遂平县| 绥棱县| 福泉市| 杭锦后旗| 阳东县| 宁津县| 永州市| 旅游| 收藏| 大足县| 平和县| 嘉鱼县| 邹城市| 阿城市| 永康市| 汾阳市| 永川市| 房山区| 界首市| 奉贤区| 思南县| 辽中县| 乌海市| 大方县| 灵武市| 保康县| 南部县| 盘锦市| 新疆| 兴安县| 淮安市| 寿光市| 中卫市| 麦盖提县| 涞源县| 宜君县| 平阳县| 安西县| 滨州市| 徐州市| 开阳县|