這篇“怎么用Python爬取電視劇所有劇情”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用Python爬取電視劇所有劇情”文章吧。
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)公司的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。
【示例代碼】
# coding=utf-8
# @Auther : 鵬哥賊優(yōu)秀
# @Date : 2019/8/7
from bs4 import BeautifulSoup
import requests
import getheader
# 獲取每一集對(duì)應(yīng)的標(biāo)題及對(duì)應(yīng)的界面URL關(guān)鍵地址
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
# 下載長(zhǎng)安十二時(shí)辰的第x集之后所有劇情,默認(rèn)從第一集開始下載。
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 + tempurl
r = 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)
【效果如下】
【知識(shí)點(diǎn)】
1、怎么自動(dòng)獲取每一集對(duì)應(yīng)的URL地址?
先查看第一集的爬取內(nèi)容,發(fā)現(xiàn)在響應(yīng)中有一段各劇集的信息,如下圖:
從這段響應(yīng)消息中可以看到,每一集對(duì)應(yīng)了一個(gè)href,然后第一集的URL地址中“https://www.tvsou.com/storys/0d884ba0dd/”剛好有部分URL地址與href一致。然后再驗(yàn)證了下第二集URL,發(fā)現(xiàn)的確就是對(duì)應(yīng)的href。因此就得到了如何自動(dòng)獲取各集URL地址的方式。
2、如何爬取每一集的劇情內(nèi)容呢?
以第一集為例,在響應(yīng)中可以看到這樣一段內(nèi)容。
在class_="font-16 color-3 mt-20 pre-content"標(biāo)簽內(nèi),就有劇情內(nèi)容。但是由于這段響應(yīng)中有多個(gè)p標(biāo)簽,每個(gè)p標(biāo)簽對(duì)應(yīng)一段內(nèi)容。因此需要對(duì)每個(gè)p標(biāo)簽進(jìn)行text提取。并且由于第一個(gè)p標(biāo)簽是
,因此需要進(jìn)行非空判斷。以上就是關(guān)于“怎么用Python爬取電視劇所有劇情”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。