国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用Python3獲取360影視首頁上電影的名稱,年份,評價,播放鏈接并保存為txt文本

2019-11-06 07:33:00
字體:
來源:轉載
供稿:網友

首先,我們需要下載python3.0以上的版本以及requests和BeautifulSoup這兩個第三方包

第三方包下載連接:

requests-2.5.0.tar.gz 鏈接:http://download.csdn.net/download/ls1160/8242547

beautifulsoup4-4.5.3.tar.gz 鏈接 :鏈接:http://download.csdn.net/download/QQ_37400312/9770777

第三方包安裝方法:

將requests-2.13.0.tar.gz壓縮包解壓后,打開cmd,跳轉至文件路徑,輸入python setup.py install按回車進行安裝

(beautifulsoup4-4.5.3.tar.gz方法相同)

然后,我們轉入正題:

1.獲取網頁源代碼

import requestshtml = requests.get('http://www.360kan.com/dianying/index.html')PRint(html.text)

我們可以編譯一下,若獲取成功則會輸出http://www.360kan.com/dianying/index.html網頁上的代碼

2.使用BeautifulSoup解析網頁

from bs4 import BeautifulSoupsoup = BeautifulSoup(html.text,'html.parser')

3.獲取全部電影名稱

for news in soup.select('.w-newfigure'):    if len(news.select('.s1')) > 0        title = news.select('.s1')[0].text        print (title)4.獲取一個年份

year = soup.select('.w-newfigure span')[0].textprint (year)

5.獲取一個電影名稱

name = soup.select('.w-newfigure span')[1].textprint (name)

6.獲取一個評分

name = soup.select('.w-newfigure span')[2].textprint (name)7.獲取全部評分

for news in soup.select('.w-newfigure'):    if len(news.select('.s2')) > 0:#無評分的直接跳過        comment = news.select('span')[2].text        print (comment)8.獲取全部電影年份、名稱和評分
for news in soup.select('.w-newfigure'):    if len(news.select('.s2')) > 0:#        year = news.select('span')[0].text#無年份的直接去掉        name = news.select('span')[1].text#無名稱的直接去掉        comment = news.select('span')[2].text#無評分的直接去掉        print (year,name,comment)

9.獲取全部影片介紹頁面

for news in soup.select('.w-newfigure'):    if awoidUrl(news.select('a ')[0]['href']):        url1 = news.select('a ')[0]['href']        print(url1)

10.構造獲取立即播放鏈接函數
def getUrl(url):    html2 = requests.get('%s'%url)    soup2 = BeautifulSoup(html2.text,"html.parser")    if len(soup2.select(".top-list-btns a")[0]['href'])>0:        url2 = soup2.select(".top-list-btns a")[0]['href']        return url2因為360影視首頁的電影只給了影片介紹頁面的鏈接,影片的播放鏈接在介紹頁面內,所以我們要構造一個函數,再獲取一次鏈接

11.構造避免http://v.360kan.com/網址和空網址函數

import redef awoidUrl(url):    if len(url) > 0:        m = re.search('http://(.*).com',url)        newurl = m.group(1)#1獲取括號內的內容        #print (newurl)        if newurl == "www.360kan":            return 1        else:            return 0    else:        return 0因為有些網址獲取不到或網址為會員才能觀看,所以我們直接跳過12.獲取全部影片序號,電影名稱,上映年份,評分,立即播放網址
i=0for news in soup.select('.w-newfigure'):    if awoidUrl(news.select('a ')[0]['href']):        url1 = news.select('a ')[0]['href']        try:            url2 = getUrl(url1)            year = news.select('span')[0].text#無年份的直接去掉            name = news.select('span')[1].text#無名稱的直接去掉            comment = news.select('span')[2].text#無評分的直接去掉            i=i+1            print ("序號:%s/t電影名稱:%s/t/t/t上映年份:%s/t評分:%s/n網址:%s"%(i,name,year,comment,url2))        except:            continue13.程序完整代碼,抓取360影視首頁資料并保存至同一目錄下的“保存內容.txt”中

#-*- coding: utf-8 -*-import requestshtml = requests.get('http://www.360kan.com/dianying/index.html')from bs4 import BeautifulSoupsoup = BeautifulSoup(html.text,'html.parser')def getUrl(url):    html2 = requests.get('%s'%url)    soup2 = BeautifulSoup(html2.text,"html.parser")    if len(soup2.select(".top-list-btns a")[0]['href'])>0:        url2 = soup2.select(".top-list-btns a")[0]['href']        return url2import redef awoidUrl(url):    if len(url) > 0:        m = re.search('http://(.*).com',url)        newurl = m.group(1)#1獲取括號內的內容        #print (newurl)        if newurl == "www.360kan":            return 1        else:            return 0    else:        return 0import urllib.requestimport urllib.parsef = open("保存內容.txt",'wb')i=0for news in soup.select('.w-newfigure'):    if awoidUrl(news.select('a ')[0]['href']):        url1 = news.select('a ')[0]['href']        try:            url2 = getUrl(url1)            year = news.select('span')[0].text#無年份的直接去掉            name = news.select('span')[1].text#無名稱的直接去掉            comment = news.select('span')[2].text#無評分的直接去掉            str = ("序號:%s/t電影名稱:%s/t/t/t上映年份:%s/t評分:%s/n網址:%s/n/n"%(i,name,year,comment,url2))            fo = open("保存內容.txt", "r+")            fo.seek(0, 2)            fo.write( str )                        i=i+1            print ("%s保存完畢"%i)        except:            continuefo.close()print("over")14.至此,我們可以通過上述代碼成功抓取360影視首頁上的電影資料,但由于有些影視的鏈接等信息有些特殊,所以本人選擇了直接忽略,例如沒有評分的電影就選擇不進行抓取等,所以抓取結果不全,僅供學習參考,如文章有錯誤或有什么好的意見,歡迎提出,謝謝。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华坪县| 上杭县| 都昌县| 乐安县| 沁阳市| 苗栗市| 顺昌县| 长宁县| 宁晋县| 呼伦贝尔市| 阳东县| 泸定县| 永川市| 龙门县| 耒阳市| 于都县| 塘沽区| 玉树县| 新郑市| 承德市| 嵊州市| 阜阳市| 惠东县| 通化市| 合江县| 九龙城区| 瑞安市| 永川市| 洪江市| 施秉县| 临沂市| 渭源县| 息烽县| 胶南市| 垣曲县| 枣阳市| 越西县| 建始县| 吴江市| 沈丘县| 沈丘县|