首页 > 其他分享 >大数据分析与可视化 之 爬取小说

大数据分析与可视化 之 爬取小说

时间:2023-12-30 20:48:04浏览次数:25  
标签:数据分析 soup href text request 爬取 item html 可视化

大数据分析与可视化 之 爬取小说

import urllib.request
import random
from bs4 import BeautifulSoup
import time
def request_html(url):
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'}
    request = urllib.request.Request(url, headers=headers)
    return request

def parse_html(html, f):
    # 生成soup对象
    soup = BeautifulSoup(html, 'lxml')
    # 查找所有的章节链接和标题内容
    list_name = soup.select('.book-mulu > ul > li > a')
    # 遍历每一个列表中的tag对象,获取链接个目录
    for item in list_name:
        # 获取链接
        #item: <a href="/book/liangjinyanyi/1.html">自序</a>
        #拼接目录链接,此处item类型为<class 'bs4.element.Tag'>,使用下面方法可以值获取href属性值
        href = 'http://www.shicimingju.com' + item['href']
        # 获取标题
        title = item.text
        print('正在下载:-**--%s--**-......' % title)
        # 获取章节内容函数
        text = get_text(href)
        # 写入文件
        f.write(title + '\n' + text)
        print('结束下载:-**--%s--**-' % title)
        time.sleep(random.uniform(0,1))

# 提取章节内容
def get_text(href):
    #创建请求对象
    request = request_html(href)
    content = urllib.request.urlopen(request).read().decode('utf8')
    soup = BeautifulSoup(content, 'lxml')
    # 查找包含内容的tag--div
    artist = soup.find('div', class_='chapter_content')
    #获取tag标签中的文本内容
    return artist.text

def run():
    # 打开文件
    f = open('两晋演义.txt', 'w', encoding='utf8')
    url = 'http://www.shicimingju.com/book/liangjinyanyi.html'
    # 构建请求对象
    request = request_html(url)
    # 发送请求,得到响应,转换为HTML对象
    html = urllib.request.urlopen(request).read().decode('utf8')
    # 解析内容
    parse_html(html,f)
    #关闭文件
    f.close()

if __name__ == '__main__':
    run()

标签:数据分析,soup,href,text,request,爬取,item,html,可视化
From: https://www.cnblogs.com/IvanKK/p/17936778

相关文章

  • 大数据分析与可视化 之 百度图片爬虫
    大数据分析与可视化之百度图片爬虫importrequestsimportrefromurllibimportparseimportosimporttime#ImportthetimemoduleclassBaiduImageSpider(object):def__init__(self):self.url='https://image.baidu.com/search/flip?tn=baiduimag......
  • 大数据分析与可视化 之 猫眼电影爬虫
    大数据分析与可视化之猫眼电影爬虫importrandomimporttimeimportreimportrequestsimportcsvclassMaoyanSpider(object):#初始化#定义初始页面urldef__init__(self):self.url='https://www.maoyan.com/board/4?offset={}'defg......
  • 大数据分析与可视化 之 百度贴吧爬虫
    大数据分析与可视化之百度贴吧爬虫importcsvimportdatetimeimportjsonfromurllibimportrequest,parseimporttimeimportrandomfromfake_useragentimportUserAgentfromlxmlimportetreeimportrequests#定义一个爬虫类classTiebaSpider(object):......
  • 大数据分析与可视化 之 百度贴吧(标题和链接)
    大数据分析与可视化之百度贴吧(标题和链接)importcsvfromurllibimportrequest,parseimporttimeimportrandomimportrequestsfromlxmlimportetreefromurllibimportrequest,parse#定义一个爬虫类classTiebaSpider(object):#初始化url属性def......
  • 大数据分析与可视化 之 实验13 大数据分析与挖掘建模
    实验13大数据分析与挖掘建模实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握使用Numpy、Pandas进行数据建模。能够利用模型数据进行相关预测分析。理解数据建模的编程过程。二、实验要求通过编程实现使用电信用户数据画像——建立RFM模型对电信电话数据集、......
  • 大数据分析与可视化 之 随堂练习
    随堂练习,随手记录2.ipynb#%%importnumpyasnpimportcsv#%%iris_data=[]withopen(r'文件地址')ascsvfile:csv_reader=csv.reader(csvfile)birth_header=next(csv_reader)forrowincsv_reader:iris_data.append(row)print(iris_......
  • 大数据分析与可视化 之 小说爬虫类
    大数据分析与可视化之小说爬虫类importrandomimportrequestsfromlxmlimportetreeimporttimeclassWebScraper:def__init__(self,url,output_file):self.url=urlself.output_file=output_fileself.headers={......
  • 大数据分析与可视化 之 实验10 Pandas实现数据分析
    实验10Pandas实现数据分析实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握Pandas的字符串函数。掌握Pandas统计汇总函数。掌握Pandas排序、分组、合并与级联函数。能利用上述函数进行综合数据分析。二、实验要求通过编程实现使用Pandas字符串函数进行文本......
  • 大数据分析与可视化 之 实验11 Matplotlib绘制图表(一)
    实验11Matplotlib绘制图表(一)实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握Matplotlib的框架及图形属性。掌握Matplotlib绘制图形的步骤。掌握Matplotlib绘制直线、曲线图、折线图。掌握Matplotlib绘制柱形图、条形图、饼图。二、实验要求通过编程实现使用......
  • 大数据分析与可视化 之 实验12 Matplotlib绘制图表(二)
    实验12Matplotlib绘制图表(二)实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握Matplotlib的框架及图形属性。掌握Matplotlib绘制图形的步骤。掌握Matplotlib绘制柱形图、条形图、饼图、折线图。掌握Matplotlib绘制散点图、等高线图、极坐标图、3D图。二、实验......