python黑客库长安十二时辰 更新_【Python成长之路】python 从零学爬虫 -- 没时间看《长安十二时辰》电视剧怎么办?直接爬取所有剧情吧!...

【写在前面】

最近大火的《长安十二时辰》真的是好看,算的是良心网剧了。但是由于平时工作时间较长,经常无法准时追剧,并且又因为不想见到元裁那对挨千刀的(作为演员,演技是值得肯定的,角色演绎的让人看的心烦)。因此就写个程序,直接爬取《长安》的剧情呗!

【示例代码】

# coding=utf-8# @Auther : 鹏哥贼优秀# @Date : 2019/8/7from bs4 import BeautifulSoupimport requestsimport getheader# 获取每一集对应的标题及对应的界面URL关键地址def get_title():url = "https://www.tvsou.com/storys/0d884ba0dd/"headers = getheader.getheaders()r = requests.get(url, headers=headers)r.encoding = "utf-8"soup = BeautifulSoup(r.text, "lxml")temps = soup.find("ul", class_="m-l14 clearfix episodes-list teleplay-lists").find_all("li")tempurllist = []titlelist = []for temp in temps:tempurl = temp.a.get("href")title = temp.a.get("title")tempurllist.append(tempurl)titlelist.append(title)return tempurllist, titlelist# 下载长安十二时辰的第x集之后所有剧情,默认从第一集开始下载。def Changan(episode=1):tempurllist_b, titlelist_b = get_title()tempurllist = tempurllist_b[(episode - 1):]titlelist = titlelist_b[(episode - 1):]baseurl = "https://www.tvsou.com"for i, tempurl in enumerate(tempurllist):print("正在下载第{0}篇".format(str(i + episode)))url = baseurl + tempurlr = requests.get(url, headers=getheader.getheaders())r.encoding = "utf-8"soup = BeautifulSoup(r.text, "lxml")result = soup.find("pre", class_="font-16 color-3 mt-20 pre-content").find_all("p")content = []for temp in result:if temp.string:content.append(temp.string)with open("test.txt", "a") as f:f.write(titlelist[i] + "\n")f.writelines(content)f.write("\n")if __name__ == "__main__":Changan(43)

【效果如下】

【知识点】

1、怎么自动获取每一集对应的URL地址?

先查看第一集的爬取内容,发现在响应中有一段各剧集的信息,如下图:

从这段响应消息中可以看到,每一集对应了一个href,然后第一集的URL地址中“https://www.tvsou.com/storys/0d884ba0dd/”刚好有部分URL地址与href一致。然后再验证了下第二集URL,发现的确就是对应的href。因此就得到了如何自动获取各集URL地址的方式。

2、如何爬取每一集的剧情内容呢?

以第一集为例,在响应中可以看到这样一段内容。

在class_="font-16 color-3 mt-20 pre-content"标签内,就有剧情内容。但是由于这段响应中有多个p标签,每个p标签对应一段内容。因此需要对每个p标签进行text提取。并且由于第一个p标签是

【写在最后】

好啦,一直写爬虫也有点无聊了,后面开始学习GUI制作吧,写些新东西。另外,竟然收到了两位读者大大的赞赏,好开心!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值