本文實(shí)例講述了python實(shí)現(xiàn)的爬取電影下載鏈接功能。分享給大家供大家參考,具體如下:
#!/usr/bin/python #coding=UTF-8 import sys import urllib2 import os import chardet from bs4 import BeautifulSoup reload(sys) sys.setdefaultencoding("utf-8") #從電影html頁面中獲取視頻下載地址 def get_movie_download_url(html): soup=BeautifulSoup(html,'html.parser') fixed_html=soup.prettify() td=soup.find('td',attrs={'style':'WORD-WRAP: break-word'}) url_a=td.find('a') url_a=url_a.string return url_a #從電影html頁面中獲取電影標(biāo)題 def get_movie_title(html): soup=BeautifulSoup(html,'html.parser') fixed_html=soup.prettify() title=soup.find('h1') title=title.string return title #訪問url,返回html頁面 def get_html(url): req=urllib2.Request(url) req.add_header('User-Agent','Mozilla/5.0') response=urllib2.urlopen(url) html=response.read() return html #從電影列表頁,獲取電影的url,拼接好,存到列表后返回 def get_movie_list(url): m_list = [] html = get_html(url) soup=BeautifulSoup(html,'html.parser') fixed_html=soup.prettify() a_urls=soup.find_all('a',attrs={'class':'ulink'}) host = "http://www.ygdy8.net" for a_url in a_urls: m_url=a_url.get('href') m_list.append(host+m_url) return m_list #存入txt文件 def file_edit(wr_str): f1 = open(r'e:\down_load_url.txt','a') f1.write(wr_str) f1.close() #傳入電影url的列表集合,獲取下載地址,并寫入文件 def write_to_txt(a_urls): for a_url in a_urls: html=get_html(a_url) html=html.decode('GBK') write_title=get_movie_title(html) write_url=get_movie_download_url(html) file_edit(write_title+"\n") file_edit(write_url+"\n") file_edit("\n") #傳入頁數(shù),返回這幾頁的url列表 def get_pages_url(num): urls_list = [] url="http://www.ygdy8.net/html/gndy/dyzz/list_23_" for n in range(1,num+1): new_url = url+str(n)+".html" urls_list.append(new_url) return urls_list if __name__=='__main__': pages = 2 #打算爬取幾頁電影 p_url = get_pages_url(pages) for i in p_url: write_to_txt(get_movie_list(i))#執(zhí)行寫入 print "done"
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
