一日神技:最快30秒写出一个异步加载爬虫

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一日神技:最快30秒写出一个异步加载爬虫相关的知识,希望对你有一定的参考价值。

一日神技:最快30秒写出一个异步加载爬虫
(https://s4.51cto.com/images/blog/202012/03/5c1708002c25e9a16f9671eed1606f12.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

在开发爬虫的过程中,遇到异步加载的接口,我们一般会使用如下几步来使用Python获取接口里面的内容:

  • 在Chrome中通过开发者工具找到接口,如下图所示![]
    技术图片

  • 把URL复制出来
  • 把字符串形式的Headers复制出来:
    技术图片

把Headers改造成字典的形式
headers ={

‘Accept‘:‘/‘,

‘Accept-Encoding‘: ‘gzip, deflate‘,

‘Accept-Language‘: ‘zh-CN,zh;q=0.9,en;q=0.8‘,

‘Connection‘: ‘keep-alive‘,

‘Content-Type‘: ‘application/json; charset=UTF-8‘,

‘Cookie‘:‘__cfduid=d82848eba37c2cbe78ba309bcdd18aa381560756114;v=AqRSJ14kpQxCvtFA70tAOEAnc6mXPcinimFc677FMG8yaUrb5k2YN9pxLHoN;_xsrf=2|c8685b58|ae9e0011924ca21d94653488771dc217|1563418855‘,

‘DNT‘: 1,

‘Host‘:‘exercise.kingname.info‘,

‘Origin‘: ‘http://exercise.kingname.info‘,

‘Referer‘: ‘http://exercise.kingname.info/exercise_ajax_3.html‘,

‘User-Agent‘: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/75.0.3770.100 Safari/537.36‘,

‘X-Requested-With‘: ‘XMLHttpRequest‘}
  • 如果是POST接口,还需要复制Body:
    技术图片

  • ……
    整个过程冗长、机械又枯燥。那有没有办法在30秒内完成这所有的操作呢?

请看下面这个动图:
技术图片

实现步骤如下:

  • 在Chrome开发者工具中找到异步加载的接口
  • 右键这个请求,选择 Copy- CopyascURL,如下图所示:
    技术图片

  • 打开Postman,点击右上角 Import按钮:

  • 在弹出窗口中定位到 PasteRawText,并粘贴,如下图所示:
    技术图片
  • 粘贴完成,点击 Import按钮。回到Postman主界面,点击右上角的 Code按钮,如下图所示:
    技术图片

  • 在弹出窗口中,左上角选择 PythonRequests,最后点击右上角的 CopytoClipboard
    技术图片
  • 到PyCharm或者其他编辑器中粘贴代码,运行!
    技术图片
    以上就是全部过程,速度快的话,不到30秒就能完成。让你把更多精力放在真正有用的地方,而不是这些机械繁杂的操作。

提示

这种方式粘贴下来的代码,虽然可以正常工作,但是有时候还是需要你做一些修改,才能更好地使用。

例如它发起请求使用的是 requests.request(‘POST‘,...)这种写法,但是你实际项目中可能需要使用 requests.post(...)或者 session.post(...);

这些自动生成的代码使用的是 print(response.text),有时候你可能需要改成 response.json()或者 response.content.decode(‘utf-8‘)。

如果本文对你有帮助,请考虑购买我的爬虫书《Python爬虫开发,从入门到实战》。

kingname
攒钱给产品经理买房。

以上是关于一日神技:最快30秒写出一个异步加载爬虫的主要内容,如果未能解决你的问题,请参考以下文章

片段布局加载延迟

Python啥爬虫库好用?

当片段视图加载是异步任务的一部分时,如何在片段加载之前显示进度条?

当活动中的异步任务完成时如何在片段中重新加载ui?

为 aiohttp 爬虫注入灵魂

如何延迟或异步此 WordPress javascript 片段以最后加载以加快页面加载时间?