本篇文章给大家分享的是有关使用ajax请求怎么爬取今日头条,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。代码如下:import requestsimport 
本篇文章给大家分享的是有关使用ajax请求怎么爬取今日头条,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
代码如下:
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是一种加密算法获取图片的二进制数据,以二进制形式写入文件 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一个个调出来传给main函数 pool.close() pool.join() #保证子进程结束后再向下执行 pool.join(1) 等待一秒
以上就是使用Ajax请求怎么爬取今日头条,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。
--结束END--
本文标题: 使用Ajax请求怎么爬取今日头条
本文链接: https://lsjlt.com/news/252308.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0