python爬虫和数据可视化论文_Python爬虫之小说信息爬取与数据可视化分析

该博客介绍了如何使用Python爬虫从起点中文网获取小说推荐周榜数据,包括书名、作者、类型、状态等信息,并利用BeautifulSoup解析网页。数据获取后,进行了数据分析和可视化,包括周票、月票和打赏人数的统计,并通过折线图、柱状图、饼状图和词云图展示了不同类型小说的受欢迎程度。最后,通过散点图分析了月票和周票的关系,揭示了热门小说的特点。
摘要由CSDN通过智能技术生成

一、小说数据的获取

获取的数据为起点中文网的小说推荐周榜的所有小说信息。

源代码对所有想要获取的数据都有注释。

http://dxb.myzx.cn/grandmal/

# -*- coding: utf-8 -*-"""

Created on Mon Jan  4 22:59:11 2021

"""import requestsfrom bs4 import BeautifulSoupimport os.pathimport csvimport timeimport pymysqlimport randomclass DrawBookMessage():

def __init__(self):

"""

定义构造函数,初始化最初网址,方便后面调用,不必重复写

"""

self.baseUrl='https://www.qidian.com/rank/recom';

#定义baseurl目标网址

def User_Agent(self):

"""

定义5个代理IP隐藏身份,用5个IP随机选取,以防止被检测到链接对象而终止访问

"""

user_agent1 = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0'

user_agent2 = 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'

user_agent3 ='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'

#user_agent4 ='Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0'

#这个代理在我的开发环境中会发生访问错误,作者注释在这里,便于提醒自己

user_agent5 ='Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3'

lst = [user_agent1,user_agent2,user_agent3,user_agent5]

return random.choice(lst)#返回随机IP

def getHtml(self,url):

"""

通过随机IP访问网页获取网页的内容

"""

user_agent = self.User_Agent()#获取随机IP

headers = {"User-Agent":user_agent}

request = requests.get(url,headers=headers).text#通过IP访问网页,并且获取网页内容请求

return request #返回

def commonsdk(self,url):

"""

把文本类型转换为类型,

之后还会用BeautifulSoup库来提取数据,如果这不是一个BeautifulSoup对象,

我们是没法调用相关的属性和方法的,所以,这是非常重要。

"""

html = self.getHtml(url)

doc=BeautifulSoup(html,'lxml')#转换为BeautifulSoup对象

return doc

def get_page_size(self,url):

'''获取页面总数'''

doc = self.commonsdk(url)

self.pageNum = doc.find("

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值