用python分析《锦衣之下》中的社交网络(一)

我有一个社交网络分析的作业,想仿照这篇Python实现《都挺好》社交网络分析做一个《锦衣之下》的社交网络分析。之所以选锦衣之下是因为我简直太喜欢看这部剧了哈哈哈~~嗝~ 咳咳····
本来想着下载个原小说对当数据来着,简单粗暴省时省力,但是后来我发现它和电视剧的出入有点大,我又对电视剧更加熟悉,所以我就舍弃了原小说,改用剧情介绍的数据。
这只是我作业的第一步,我打算弄一点写一点博客,劳逸结合当放松一下,哈哈,加油~
爬取的对象网页是这样的:
链接:https://www.juqingba.cn/zjuqing/76253.html
在这里插入图片描述
一共爬取55集,需要对每一集发送请求获得页面,经过分析发现除了第一集url后缀是76253.html形式,其余集都是76253_{}.html的形式
于是只对第一集单独做一下处理
爬虫的代码(pachong.py)如下:

import requests
from lxml import etree


# 获取到分页url的一个统一格式
url_all = 'https://www.juqingba.cn/zjuqing/76253_{}.html'
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}

def get_url_list(url):
    '''获取url列表  用于分页获取内容'''
    # 获取55集
    url_list = [url.format(i) for i in range(2, 56)]
    url_list.insert(0, 'https://www.juqingba.cn/zjuqing/76253.html') # 第一集
    return url_list

def get_page_etree(url, headers):
    '''得到页面的etree对象'''
    html_obj = requests.get(url=url, headers=headers)# 根据url请求页面,获取页面响应对象html_obj
    html_obj = html_obj.content.decode('GBK') # 解决乱码问题
    tree = etree.HTML(html_obj) # 转化为页面的etree对象
    return tree

def get_data(tree):
    """获取一页的数据"""
    data = tree.xpath('.//div[@class="ndfj"]/p/text()')[:-1]
    content = ''
    for para in data:
        content = content + para
    return content

def write_txt(filename, content):
    """写入txt文件"""
    f = open(filename, 'w')
    f.write(content)
    f.close()
    
# 主程序部分
# 获取url列表 用于分页爬取
url_list = get_url_list(url_all)
for i, url in enumerate(url_list):
    # 获取每一页的列表页etree对象
    tree = get_page_etree(url=url,headers=headers)
    # 得到所有数据追加到data中
    content = get_data(tree)
    if(content):
        # 持久化存储
        # print(content)
        filename = 'E:/Pycharm Project/UnderPower/content/'+ str(i+1) + '.txt'
        write_txt(filename, content) # 写入文件中
        print('第',i + 1,'集  爬取成功!')
    else:
        print('第', i + 1, '集  失败!!!')

形成文件(截取了部分):
在这里插入图片描述


待更新···

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值