婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 爬取今日頭條Ajax請求

爬取今日頭條Ajax請求

熱門標簽:提高電話機器人接通率 外呼系統(tǒng)api對接 廣西智能外呼系統(tǒng)多少錢 平?jīng)龈叩碌貓D標注商戶要收費嗎 地圖標注與公司業(yè)務關系 荊州智能電銷機器人 福建微碼電話機器人 銷售電銷機器人詐騙 大學校門地圖標注

網(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一個個調出來傳給main函數(shù)
  pool.close()
  pool.join()   #保證子進程結束后再向下執(zhí)行 pool.join(1) 等待一秒

總結

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

您可能感興趣的文章:
  • 十個優(yōu)秀的Ajax/Javascript實例網(wǎng)站收集
  • 編碼為GB2312網(wǎng)站讓AJAX接收的數(shù)據(jù)顯示支持中文
  • php ajax網(wǎng)站瀏覽統(tǒng)計功能的簡單實現(xiàn)
  • PHP+Ajax 網(wǎng)站SEO查詢工具 提供代碼
  • ajax+node+request爬取網(wǎng)絡圖片的實例(宅男福利)
  • 通過抓取淘寶評論為例講解Python爬取ajax動態(tài)生成的數(shù)據(jù)(經(jīng)典)
  • 如何爬取通過ajax加載數(shù)據(jù)的網(wǎng)站

標簽:內(nèi)江 黔東 德陽 衡陽 樂山 邯鄲 婁底 海南

巨人網(wǎng)絡通訊聲明:本文標題《爬取今日頭條Ajax請求》,本文關鍵詞  爬取,今日,頭條,Ajax,請求,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《爬取今日頭條Ajax請求》相關的同類信息!
  • 本頁收集關于爬取今日頭條Ajax請求的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 中山市| 新龙县| 耿马| 玛沁县| 巴南区| 府谷县| 赣州市| 门头沟区| 民丰县| 祁阳县| 沅江市| 富蕴县| 廊坊市| 元谋县| 唐山市| 阿巴嘎旗| 聂拉木县| 扬中市| 靖远县| 旬邑县| 黑山县| 洛阳市| 哈巴河县| 雷波县| 无为县| 上饶县| 绥宁县| 峡江县| 扬州市| 浙江省| 株洲市| 彭泽县| 抚顺市| 台前县| 南皮县| 博客| 土默特右旗| 桃园市| 中卫市| 海丰县| 凤翔县|