vue视频教程 Java包装类 CPU 状态模式 deployment wso2 vue版本 python开发安卓应用 mysql配置远程连接 mysql数据库 mysql学习 python字典类型 java基础语言 java文件写入 java自学教程 java连接mysql数据库 怎么安装java环境 java时间戳转日期 java目录 java线程死锁 linux操作系统原理 mounted 万能低格工具 手机主题之家 超级力量2修改 存储过程写法 古风头像女动漫 js字符串比较 保卫萝卜沙漠7攻略 黑域怎么用 微信超额20万怎么办 苹果x怎么用 zepto下载 cad标题栏 gmail邮箱打不开 凯立德地图下载 kindeditor漏洞 武林外传天师加点 imacros 正则表达式匹配数字
当前位置: 首页 > 学习教程  > 编程语言

爬虫:起点中文网

2021/2/13 19:20:55 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

1. 目标: 练习爬取起点中文网24小时热销榜(https://www.qidian.com/rank/hotsales)小说名称、作者、类型、状态、剧情介绍、最新更新章节和最新更新时间,并存储到csv中。 2. 代码实现 import requests from lxml import etree i…

1. 目标:

练习爬取起点中文网24小时热销榜(https://www.qidian.com/rank/hotsales)小说名称、作者、类型、状态、剧情介绍、最新更新章节和最新更新时间,并存储到csv中。

2. 代码实现

import requests
from lxml import etree
import time
import pandas as pd
headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36'
}
result = {
    'title':[],#小说名称
    'author':[],#小说作者
    'type':[],#小说类型
    'progress':[],#状态:完结or连载
    'intro':[],#剧情介绍
    'now':[],#最新更新章节
    'time':[]#最新更新时间
}
for i in range(1,6):
    url = 'https://www.qidian.com/rank/hotsales?style=1&page={}'.format(i)
    page_text = requests.get(url = url, headers = headers).text
    tree = etree.HTML(page_text)
    li_list = tree.xpath('//div[@class = "book-img-text"]/ul/li')
    for li in li_list:
        title = li.xpath('./div[2]/h4/a/text()')[0].replace(' ','').replace('\n','')
        author = li.xpath('./div[2]/p[1]/a[1]/text()')[0].replace(' ','').replace('\n','')
        Type = li.xpath('./div[2]/p[1]/a[2]/text()')[0].replace(' ','').replace('\n','')
        progress = li.xpath('./div[2]/p[1]/span/text()')[0].replace(' ','').replace('\n','')
        intro = li.xpath('./div[2]/p[2]/text()')[0].replace(' ','').replace('\n','').replace('\t','').replace('\r','')
        now = li.xpath('./div[2]/p[3]/a/text()')[0].replace(' ','').replace('\n','').replace('最新更新','')
        Time = li.xpath('./div[2]/p[3]/span/text()')[0].replace('\n','')
        #将时间标准化
        ctime = time.strftime('%Y/%m/%d %H:%M')
        time.sleep(0.5)
        print(title)
        result['title'].append(title)
        result['author'].append(author)
        result['type'].append(Type)
        result['progress'].append(progress)
        result['intro'].append(intro)
        result['now'].append(now)
        result['time'].append(ctime)
        df = pd.DataFrame(result)
        df.to_csv('qidian.csv',encoding = 'utf-8')

3. 结果展示

 


本文链接: http://www.dtmao.cc/news_show_700312.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?