✅前言:在前面的学习Scrapy中,我们都是基于Get请求的,进行网站的数据抓取,今天我们练习的是基于Post请求的。练习:使用Scrapy爬取国家药监局-化妆品生成许可信息。
一、目标网址:
- http://scxk.nmpa.gov.cn:81/xk/
二、需求:
- 1.爬取每个页面中,每个企业生产许可的详情信息
- 2.数据存储到MongoDB数据库中,以及本地一份(格式无要求!案例中用的是存储为xlsx格式)
三、技术要点:
- 1.Scrapy框架的运用
- 2.如何发送POST请求?(以及当一开始就需要发送POST请求又该如何发送?)
- 3.当在不同请求传输数据时,如何保持多个请求之间的数据连接?
- 4.如何存储到MongoDB中?
- 5.如何存储为xlsx格式文件?
- 6.zip函数的应用。
- …
四、分析网站
从网站中我们可以看出,无论是首页还是详情页面,都是动态数据,异步请求的。
五、主要代码
1/定义Item
在文件中,定义。
2/编写爬虫代码
在文件中,编写爬虫代码模块
主要的都在代码中已标明注释
3/Pipeline
在文件中,编写存储到的类跟存储到的类
1>存储为xlsx文件
2>存储到MongoDB数据库
4/应对反爬虫机制
在文件中,找到方法,伪造随机UA
在文件中,禁用cookies
可以的话,还能开启限速爬取,跟添加代理IP。
5.配置settings
开启中间件
关闭
六、完整代码
【点击下载完整代码】
新手上路,代码写得不好,如果有理解错误的,还请大佬在评论区指出来,非常感谢!
以上就是运用 Scrapy爬取药监局信息 的所有内容了,点赞收藏加评论是最大的支持哦!