首页 > 其他分享 >浏览器小说爬虫

浏览器小说爬虫

时间:2024-08-08 22:07:10浏览次数:12  
标签:box el 浏览器 await 爬虫 intro div 小说 page

在外网偷偷爬点小说资源

import puppeteer from 'puppeteer-core'
import fs from 'fs'

(async () => {
    const userAgent="Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"
    const browser = await puppeteer.launch({
        // args: [`--user-agent=${userAgent}`],
        headless: false,
        userDataDir:'/Users/caoke/chromedefault',
        'executablePath':'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
    });
    const page = await browser.newPage();
// page.setUserAgent(userAgent)
// page.setViewport({
//     width:390,
//     height:844,
// })
    page.setViewport({
        width:1024,
        height:768,
    })
    const data={}
    let url='https://www.xxx.com/novel/intro?id=1018852882323214336'
    await page.goto(url);
    data.url=url;

    await page.waitForSelector('#root > div.intro_box > div.content_box > div.novel_box > ul.intro > li:nth-child(3) > div')
    data.name = await page.$eval('#root > div.intro_box > div.content_box > div.novel_box > ul.intro > li:nth-child(1) > div.info > div.title > h1', el => el.innerText);
    data.author = await page.$eval('#root > div.intro_box > div.content_box > div.novel_box > ul.intro > li:nth-child(1) > div.info > div.author', el => el.innerText);
    data.tags = await page.$eval('#root > div.intro_box > div.content_box > div.novel_box > ul.intro > li:nth-child(1) > div.info > div.tag', el => {
        const tags = []
        el.querySelectorAll('a').forEach(function (node){
            tags.push(node.innerText)
        })
        return tags
    });
    data.intro = await page.$eval('#root > div.intro_box > div.content_box > div.novel_box > ul.intro > li:nth-child(3) > div > h2', el => el.innerText);
    console.log(data)

    data.list=[]
    const nList = await page.$eval('#root > div.intro_box > div.content_box > div.novel_box > ul.catalog', el => {
        const nodeList=el.querySelectorAll('a')
        const ans=[]
        nodeList.forEach(node => {
            ans.push({
                href:node.href,
                title:node.innerText,
            })
        })
        return ans
    });

    for(let i=0;i<nList.length;i++){
        const url=nList[i].href
        await page.goto(url);
        const item={}
        await page.waitForSelector('#content > div.chapter > div.title_box > span')

        item.title = await page.$eval('#content > div.chapter > div.title_box > span', el => el.innerText);
        item.info = await page.$eval('.article', el => el.innerText);
        data.list.push(item)
        console.log(data)
    }
    fs.writeFileSync(data.name+'.json',JSON.stringify(data,null,2))

// await browser.close();
})();

 

标签:box,el,浏览器,await,爬虫,intro,div,小说,page
From: https://www.cnblogs.com/caoke/p/18349819

相关文章

  • "揭秘CentosChina爬虫项目:掌握Scrapy框架的必备技巧与数据库设计"
    Centoschina项目要求爬取centoschina_cn的所有问题,包括文章标题和内容数据库表设计库表设计:数据展示:项目亮点低耦合,高内聚。爬虫专有settingscustom_settings=custom_settings_for_centoschina_cncustom_settings_for_centoschina_cn={'MYSQL_USER':'roo......
  • "阳光高考爬虫项目揭秘:增量爬虫与断点续抓的Python实战"
    阳光高考项目项目要求爬取各大高校基本信息和招生简章(招生简章要求存储为pdf格式并且入库)数据库表设计idtask_urlstatus:0(未抓取),1(抓取中),2(抓取完毕),3(错误),4(更新中),5(数据更新成功),6(数据未更新,保持原样),9(暂无),8(暂无)3:错误,是因为此div下根本没p标签,所以根本等不到......
  • ecosia 搜索引擎爬虫
    因为他有cloudflare五秒盾所以需要先破五秒盾网上找的资料已验证可用 然后替换代码里的url_baseDocker运行一个容器就可以了。启动命令为:dockerrun-d\--name=flaresolverr\-p8191:8191\-eLOG_LEVEL=info\--restartunless-stopped\ghcr.io/flareso......
  • Python爬虫实战:实时微信推送奥运奖牌榜信息
    最近奥运会正在巴黎如火如荼地进行。为了能第一时间获得我国运动健儿的获奖情况,我给大家分享一个python爬虫项目——实时微信推送奥运奖牌榜信息。爬虫每隔5分钟抓取一次奥林匹克官网奖牌榜数据,对比上次抓取的数据,如果奖牌数量或者排名有变化,就将新的获奖信息推送到......
  • 基于JSP和MySQL的小说阅读网站系统
    你好,我是计算机专业的学姐,很高兴和大家分享我的毕业设计——小说阅读网站系统。如果对此有兴趣或任何问题,欢迎随时联系我。开发语言:Java数据库:MySQL技术:JSP+JavaBeans+Servlet工具:常用开发环境(如Eclipse)系统展示首页管理员界面读者个人中心作者个人中心......
  • # entos7系统安装稳定版Google浏览器
    首先,执行以下命令以导入Google的签名密钥,这样系统就能验证从Google官方仓库下载的软件包的真实性:Bash1sudorpm--importhttps://dl.google.com/linux/linux_signing_key.pub接着,创建一个新的Yum仓库配置文件/etc/yum.repos.d/google-chrome.repo,内容如下:Bash1sudosh-c......
  • Python & Selenium 4 & Edge 浏览器 |加载个人浏览器配置文件(包括cookie)
    使用Selenium4,我尝试加载我的个人浏览器配置文件(包括cookie),以便它可以加载到我之前登录过的网站。我正在使用边缘浏览器。在测试我的代码片段时,它似乎没有加载我的浏览器配置文件,而是创建一个新的(配置文件1)。我已确保配置文件的路径是正确的。我的代码片段:edge_opt......
  • Python爬虫案例与实战:爬取源代码练习评测结果
    Python爬虫案例与实战:爬取源代码练习评测结果本章案例将介绍用Python编写程序实现简单网站的模拟登录,然后保持登录后的网页会话,并在会话中模拟网页表单提交,之后使用Requests库的高级特性爬取提交之后的返回结果。在HTTP网页中,如登录、提交和上传等操作一般通过向网页发送......
  • Python爬虫案例与实战:爬取豆瓣电影简介
    Python爬虫案例与实战:爬取豆瓣电影简介本章案例将介绍如何爬取豆瓣电影简介,以此帮助读者学习如何通过编写爬虫程序来批量地从互联网中获取信息。本案例中将借助两个第三方库----Requests库和BeautifulSoup库。通过Requests库获取相关的网页信息,通过BeautifulSoup库解析大......
  • 基于django+vue的小说阅读系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,数字阅读已成为人们获取信息与娱乐的重要方式之一。小说作为文学的重要分支,拥有庞大的读者群体。然而,传统的小说......