您好,登錄后才能下訂單哦!
這篇“怎么用Python爬取電視劇所有劇情”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用Python爬取電視劇所有劇情”文章吧。
【示例代碼】
# coding=utf-8
# @Auther : 鵬哥賊優秀
# @Date : 2019/8/7
from bs4 import BeautifulSoup
import requests
import 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 + 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)
【效果如下】
【知識點】
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標簽是<p></p>,因此需要進行非空判斷。
以上就是關于“怎么用Python爬取電視劇所有劇情”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。