老程序员分享:python爬取电影网站信息并写入文件

简介: 老程序员分享:python爬取电影网站信息并写入文件

"

1 #

2 import //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDE0OTIyOA==.html

requests

3 import re

4 from bs4 import BeautifulSoup

5 from urllib.parse import urlparse,parse_qs

6 import os

7

8

9 def get_url_content(url): //获取网站的源码

10 response=requests.get(url)

11 if response.status_code==200:

12 return response.text

13 else:

14 return False

15

16 def parse_Web_Content(content):

17 Object=BeautifulSoup(content,'html.parser')

18

19 filmName=get_film_name(Object)

20 filmCast=get_film_cast(Object)

21 filmIntro=get_film_introduction(Object)

22 filmUrl=get_film_url(Object)

23

24 film=【】

25 for i in range(len(filmName)):

26 indiv={

27 'fileName':filmName【i】,

28 'filmCast':filmCast【i】,

29 'filmIntro':filmIntro【i】,

30 'filmurl':''+filmUrl【i】

31 }

32 film.append(indiv)

3//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg1MjEyNA==.html

3 return film

34

35

36 def get_film_name(Soup):

37 Name=Soup.select("".play_info"")

38 name_list=【】

39 for i in range(len(Name)):

40 parsedName=Name【i】.a.string

41 name_list.append(parsedName)

42 return name_list

43

44 def get_film_cast(Soup):

45 Cast=Soup.find_all('p',attrs={'class':'space'})

46 film_Cast = 【】

47 for i in range(len(Cast)):

48 parsedCast=Cast【i】.text

49 film_Cast.append(parsedCast)

50 return film_Cast

51

52 def get_film_introduction(Soup):

53 Introduction=Soup.find_all('p',attrs={'class':'content'})

54 intro_list=【】

55 for i in range(len(Introduction)):

56 parsedIntro=Introduction【i】.text

57 intro_list.append(parsedIntro)

58 return intro_list

59

60 def get_film_url(Soup):

61

62 filmUrl=Soup.select("".play_info"")

63 Url_list=【】

64 for i in range(len(filmUrl)):

65 href=filmUrl【i】.a【'href'】

66 Url_list.append(href)

67 return Url_list

68

69 def writeTofile(parsedWebcontent):

70 with open('film.txt','a',encoding='utf-8') as f:

71 for i in range(len(parsedWebcontent)):

72 f.write(parsedWebcontent【i】【'fileName'】+'\t')

73 f.write(parsedWebcontent【i】【'filmCast'】 + '\t')

74 f.write(parsedWebcontent【i】【'filmIntro'】 + '\t')

75 f.write(parsedWebcontent【i】【'filmurl'】 + '\t')

76 f.write('\n')

77 f.close()

78

79

80 link=""""

81 for i in range(1,4):

82 url=link + str(i) + "".html""

83 webContent=get_url_content(url)

84

85 if webContent!=False:

86 Content=parse_Web_Content(webContent)

87 writeTofile(Content)


"
image.png
相关文章
|
12天前
|
人工智能 大数据 数据挖掘
不只是程序员的专利:Python为何成为全民编程语言?
**摘要:** Python火出程序员圈子,源于电子化、数字化、智能化趋势。电子化时代,数据积累推动数字化进程,Excel等工具力不从心。Python因其大数据处理能力受青睐,尽管学习曲线陡峭。随着GPT等AI工具兴起,智能化时代开启,Python成为时代产物。博主晚枫专注研究Python在非程序员中的应用,并提供免费课程。在数字化转型和AI发展浪潮中,技术变现机会众多。
109 54
不只是程序员的专利:Python为何成为全民编程语言?
|
12天前
|
程序员
大家来决定:python-office运行时的提示信息,要不要删除?
**摘要:** 程序员晚枫发起投票,询问是否应去除`python-office`项目运行时显示的中文提示信息,这些信息包含教程、源码链接和答疑群等。提示虽无运行影响,但显得不够专业。项目因用户咨询增加而添加此信息,作者考虑删除,因觉得与常见开源项目风格不同且其教程收费。附三张截图展示提示内容。用户可在评论区投票决定,输入“取消”或“保留”。
大家来决定:python-office运行时的提示信息,要不要删除?
|
1天前
|
设计模式 程序员 测试技术
老程序员分享:Python数据模型及Pythonic编程
老程序员分享:Python数据模型及Pythonic编程
|
2天前
|
人工智能 程序员 Shell
程序员必知:对比python学julia(第二章)
程序员必知:对比python学julia(第二章)
|
6天前
|
JSON 数据格式 索引
Python内置函数如`print()`输出信息,`len()`计算长度
【6月更文挑战第23天】Python内置函数如`print()`输出信息,`len()`计算长度,`type()`识别类型,`range()`生成序列,`sum()`求和,`min()`和`max()`找极值,`abs()`取绝对值,`round()`四舍五入,`sorted()`排序,`zip()`和`enumerate()`组合及遍历,`map()`和`filter()`应用函数。标准库如`os`用于操作系统交互,`sys`处理解释器信息,`math`提供数学运算,`re`支持正则表达式,`json`处理JSON数据。学习这些能提升编程效率。
21 5
|
11天前
|
存储 数据挖掘 索引
Python streamlit框架开发数据分析网站并免费部署
使用Python的Streamlit框架,开发了一个在线数据分析工具,替代Excel查看设备温度CSV数据。通过pandas读取数据,matplotlib绘制图表。程序处理CSV,提取所需列,计算最大最小平均值,用户可多选查看特定数据。[GitHub](https://github.com/yigedaigua/MGHB)上有完整代码,应用已部署至Streamlit Cloud。
|
17天前
|
Python
python文件对象写入文件
【6月更文挑战第7天】
23 6
|
14天前
|
Python 存储 数据处理
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
|
17天前
|
存储 XML 数据处理
Python网络实践:去哪儿旅游数据爬取指南
Python网络实践:去哪儿旅游数据爬取指南
|
17天前
|
JavaScript 关系型数据库 MySQL
Python实战:从猎聘网获取职位信息并存入数据库
Python实战:从猎聘网获取职位信息并存入数据库