成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

爬取今日頭條Ajax請(qǐng)求

瀏覽:431日期:2022-06-11 11:18:07

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

搜索頭條

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

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

我們?cè)谒阉髦胁](méi)有發(fā)現(xiàn)上面的文字,那么我們可以初步判定,這個(gè)由Ajax加載,然后渲染出來(lái)的。此時(shí)切換到xhr過(guò)濾,可以看到確實(shí)是ajax請(qǐng)求。

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

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

import requestsimport osfrom urllib.parse import urlencodefrom hashlib import md5from multiprocessing.pool import Poolfrom requests import codesdef 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是一種加密算法獲取圖片的二進(jìn)制數(shù)據(jù),以二進(jìn)制形式寫入文件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 = 0GROUP_END = 2if __name__ == "__main__":  pool = Pool()  groups = ([x*20 for x in range(GROUP,GROUP_END)])  pool.map(main,groups)  #將groups一個(gè)個(gè)調(diào)出來(lái)傳給main函數(shù)  pool.close()  pool.join()   #保證子進(jìn)程結(jié)束后再向下執(zhí)行 pool.join(1) 等待一秒

總結(jié)

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

標(biāo)簽: Ajax
相關(guān)文章:
主站蜘蛛池模板: 久久综合狠狠综合狠狠 | 99久久国内精品成人免费 | 久久99亚洲精品久久频 | avhd101天天看新片 | 在线亚洲成人 | 国产福利一区二区三区 | 欧美在线成人午夜影视 | 国产亚洲欧美日韩在线观看一区二区 | 美女张开腿黄网站免费国产 | 在线欧美成人 | 黄色免费在线网址 | 国产农村一二三区 | 精品国语_高清国语自产 | 亚洲免费中文 | 日本美女视频韩国视频网站免费 | 亚洲视频在线a视频 | 久久久久性 | 一区二区三区四区产品乱码伦 | 九九视频精品全部免费播放 | 亚洲一区精品在线 | 欧美色网在线 | 亚洲无限看 | 成人区精品一区二区毛片不卡 | 精品日韩欧美 | 99精品高清不卡在线观看 | 在线亚洲综合 | 一区二区三区在线免费观看视频 | 黄到让你下面湿的视频 | 一本一本久久a久久精品综合麻豆 | 国产一在线精品一区在线观看 | 香港经典毛片a免费观看 | 国产色a在线观看 | 国产手机精品一区二区 | 美女一级毛片免费不卡视频 | 美女视频黄a全部免费专区一 | 国产高清在线免费视频 | 国产精品久久久久久久久久日本 | 久久久国产99久久国产首页 | 九九视频在线观看视频6 | 国产欧美亚洲精品a | 国产裸体美女视频全黄 |