Python爬虫实战(八):爬取电影天堂的电影下载链接

举报
悦来客栈的老板 发表于 2020/12/29 00:14:02 2020/12/29
【摘要】 #coding=utf-8import reimport requestsimport xlsxwriterfrom bs4 import BeautifulSoup def getHtml(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/201...

  
  1. #coding=utf-8
  2. import re
  3. import requests
  4. import xlsxwriter
  5. from bs4 import BeautifulSoup
  6. def getHtml(url):
  7. headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'}
  8. try:
  9. page = requests.get(url,headers = headers)
  10. page.encoding = 'gbk'
  11. html = page.text
  12. return html
  13. except:
  14. return ""
  15. def getMovie(html):
  16. allmovie = []
  17. movieurl = []
  18. ftpurl = []
  19. soup = BeautifulSoup(html, 'html.parser')
  20. url_info = soup.find_all('a',class_="ulink")
  21. for url in url_info:
  22. movie = url.get_text()
  23. movie = movie.split('《')[1]
  24. movie = movie.split('》')[0]
  25. allmovie.append(movie)
  26. reurl = 'http://www.dytt8.net' + url.get('href')
  27. movieurl.append(reurl)
  28. for url in movieurl:
  29. try:
  30. html = getHtml(url)
  31. reg = r'href="(ftp:.+?)">'
  32. imgre = re.compile(reg)
  33. imglist,*_ = re.findall(imgre,html)
  34. ftpurl.append(imglist)
  35. except:
  36. print('访问异常,无法获取下载地址')
  37. ftpurl.append('')
  38. return allmovie,ftpurl
  39. if __name__=='__main__':
  40. workbook = xlsxwriter.Workbook('电影资源.xlsx')
  41. worksheet = workbook.add_worksheet()
  42. row = 0
  43. for i in range(166):
  44. print('正在访问第{}页'.format(i+1))
  45. url = 'http://www.dytt8.net/html/gndy/dyzz/list_23_' + str(i+1) + '.html'
  46. html = getHtml(url)
  47. if not html:
  48. print('访问异常,跳过')
  49. continue
  50. movie,ftp = getMovie(html)
  51. for item in zip(movie,ftp):
  52. worksheet.write(row,0,item[0])
  53. worksheet.write(row,4,item[1])
  54. row = row+1
  55. workbook.close()
  56. print ("OK!DownLoad ALL!")

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/78386843

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。