nodejs的puppeteer爬药监局
时间: 2023-10-09 20:09:49 浏览: 177
使用 Puppeteer 爬取药监局数据可以分为以下几个步骤:
1. 安装 Puppeteer
在命令行中输入以下命令安装 Puppeteer:
```
npm install puppeteer
```
2. 启动浏览器
在代码中引入 Puppeteer 并启动浏览器:
```javascript
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
})();
```
3. 打开目标页面
在浏览器中打开目标页面:
```javascript
await page.goto('http://app2.sfda.gov.cn/datasearchp/index.do');
```
4. 填写表单并提交
在页面中找到需要填写的表单元素,输入相应的值并提交表单:
```javascript
await page.type('#productName', '阿莫西林胶囊');
await page.click('#searchBtn');
```
5. 等待页面加载完成
等待页面加载完成,可以通过判断特定元素是否出现来实现:
```javascript
await page.waitForSelector('#resultList');
```
6. 获取数据
获取目标数据,可以通过页面的 DOM 结构或者 API 接口来实现。
例如,可以使用 `page.$$eval` 和 `Array.map` 方法获取药品名称列表:
```javascript
const productList = await page.$$eval('.content .list td:first-child a', links =>
links.map(link => link.textContent.trim())
);
console.log(productList);
```
7. 关闭浏览器
最后,关闭浏览器:
```javascript
await browser.close();
```
以上就是使用 Puppeteer 爬取药监局数据的基本流程。需要注意的是,爬取数据时需要遵守相关法律法规和网站规定,尊重网站的知识产权和使用权。
阅读全文