例子一:
保存通过URL(https://m.dytt8.net/index2.htm)获取到的网页源代码和内容:
连接公网安装第三方库(requests):
C:\Users\jacky\Desktop>pip3 install requests -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com
脚本内容:
#coding=utf-8
import requests
url = 'https://m.dytt8.net/index2.htm' #网站 (电影天堂)的URL
response = requests.get(url=url)
response.encoding = 'gbk' #有些网站使用gbk,有些网站使用utf-8
Key_1 = response.text
#print(Key_1)
Path_1 = "./1.txt"
f_name = open(Path_1,'w',encoding='utf-8') #写入(覆盖)文件内容
Result_1 = f_name.write(Key_1)
f_name.close()
运行脚本的结果:(脚本所在目录下会生成文件1.txt,文件里会包含网页源代码和内容)
C:\Users\jacky\Desktop>python xx.py
C:\Users\jacky\Desktop>
######
例子二:
从例子一获取的数据中筛选出版块[最新电影下载]下的所有电影名称:
笺注:
版块[最新电影下载]下的电影名称格式,如下:
·[<a href="/html/gndy/dyzz/index.html">最新电影下载</a>]<a href='/html/gndy/dyzz/20220527/62647.html'>2022年剧情《以青春之名》HD国语中字</a><br/>
·[<a href="/html/gndy/dyzz/index.html">最新电影下载</a>]<a href='/html/gndy/dyzz/20220527/62645.html'>2022年爱情喜剧《替身演员》BD中英双字</a><br/>
·[<a href="/html/gndy/dyzz/index.html">最新电影下载</a>]<a href='/html/gndy/dyzz/20220527/62646.html'>2021年悬疑惊悚《黑匣子/黑盒线索》BD中字</a><br/>
脚本内容:
#coding=utf-8
from io import StringIO
String_1 = StringIO()
def func1(): #读取文件内容
Path_1 = "./1.txt"
f_name = open(Path_1,'r',encoding='utf-8')
fields_1 = f_name.readlines() #输出结果为列表,包含换行符
f_name.close()
func2(fields_1)
def func2(fields_1): #从func1()获得的数据中进行筛选
K_1 = "最新电影下载</a>" #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = f"{Key_1.split('html')[4][2:][:-10]}\n" #以'html'为分隔符进行分割后,取第五项,然后去掉前面2个字符,再去掉最后10个字符,最后换行
String_1.write(Result_1)
Result_2 = String_1.getvalue()
Result_2 = Result_2.rstrip('\n') #去除结果最后(右边)的一个换行符
print("版块[最新电影下载]下的所有电影名称:")
print(Result_2)
if __name__ == '__main__':
func1()
脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
版块[最新电影下载]下的所有电影名称:
2021年剧情灾难《峰爆/无限救援》BD国语中字
2022年剧情《以青春之名》HD国语中字
2022年爱情喜剧《替身演员》BD中英双字
2021年悬疑惊悚《黑匣子/黑盒线索》BD中字
2022年动作《记忆/失忆刺客/记忆杀神》BD中英双字
2022年科幻动作喜剧《刺猬索尼克2》HD中英双字
2022年纪录片《网络炼狱:揭发N号房》BD韩语中字
2022年动画喜剧《奇奇与蒂蒂:救援突击队》BD中英双字
2022年科幻惊悚《双重躯体》BD中英双字
2021年剧情传记《幸存者》BD中英双字
2022年喜剧奇幻《瞬息全宇宙》BD中英双字
2022年喜剧《重返毕业季》BD中英双字
2022年动作《青面修罗》HD国语中英双字
2022年动作科幻《暗夜博士:莫比亚斯》BD中英双字
2022年动作冒险《北欧人》BD中英双字
C:\Users\jacky\Desktop>
######
例子三:
从例子一获取的数据中筛选出版块[最新电影下载]下的所有电影名称:
脚本内容:(使用正则表达式)
#coding=utf-8
import re #导入正则表达式的模块(内置模块,不用额外安装)
def func1(): #读取文件内容
Path_1 = "./1.txt"
f_name = open(Path_1,'r',encoding='utf-8')
fields_1 = f_name.readlines() #输出结果为列表,包含换行符
f_name.close()
func2(fields_1)
def func2(fields_1): #从func1()获得的数据中进行筛选
print("版块[最新电影下载]下的所有电影名称:")
K_1 = "最新电影下载</a>" #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u".*?html'>(.*?)</a><br/>.*?")
Result_2 = Result_1.findall(Key_1)
print(Result_2[0])
if __name__ == '__main__':
func1()
脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
版块[最新电影下载]下的所有电影名称:
2021年剧情灾难《峰爆/无限救援》BD国语中字
2022年剧情《以青春之名》HD国语中字
2022年爱情喜剧《替身演员》BD中英双字
2021年悬疑惊悚《黑匣子/黑盒线索》BD中字
2022年动作《记忆/失忆刺客/记忆杀神》BD中英双字
2022年科幻动作喜剧《刺猬索尼克2》HD中英双字
2022年纪录片《网络炼狱:揭发N号房》BD韩语中字
2022年动画喜剧《奇奇与蒂蒂:救援突击队》BD中英双字
2022年科幻惊悚《双重躯体》BD中英双字
2021年剧情传记《幸存者》BD中英双字
2022年喜剧奇幻《瞬息全宇宙》BD中英双字
2022年喜剧《重返毕业季》BD中英双字
2022年动作《青面修罗》HD国语中英双字
2022年动作科幻《暗夜博士:莫比亚斯》BD中英双字
2022年动作冒险《北欧人》BD中英双字
C:\Users\jacky\Desktop>
######
例子四:
使用网站 (电影天堂)的搜索框:
笺注:
在搜索框里搜索“浪客剑心”,会得到以下URL:(有些网站的URL里不能直接使用中文)
http://s.ygdy8.com/plus/s01.php?typeid=1&keyword=%C0%CB%BF%CD%BD%A3%D0%C4
脚本内容:
#coding=utf-8
import requests
Key_a = "%C0%CB%BF%CD%BD%A3%D0%C4"
url = 'http://s.ygdy8.com/plus/s01.php?typeid=1&keyword=' + Key_a
response = requests.get(url=url)
response.encoding = 'gbk' #有些网站使用gbk,有些网站使用utf-8
Key_1 = response.text
#print(Key_1)
Path_1 = "./2.txt"
f_name = open(Path_1,'w',encoding='utf-8')
Result_1 = f_name.write(Key_1)
f_name.close()
脚本运行的结果:(脚本所在目录下会生成文件2.txt,文件里会包含网页源代码和内容)
C:\Users\jacky\Desktop>python xx.py
C:\Users\jacky\Desktop>
######
例子五:
输出从网站 (电影天堂)的搜索框里搜索“浪客剑心”而获得的电影名:
笺注:
从搜索框里搜索“浪客剑心”,而获得的电影名称格式,如下:
<td width='55%'><b><a href='/html/gndy/dyzz/20210801/61694.html'>2021年冒险动作《<font color='red'>浪客剑心</font>最终章追忆篇》BD日语中字</a></b></td>
<td width='55%'><b><a href='/html/gndy/dyzz/20210620/61549.html'>2021年动作《<font color='red'>浪客剑心</font>最终章人诛篇》BD日语中字</a></b></td>
<td width='55%'><b><a href='/html/gndy/dyzz/20130103/40879.html'>2012年动作《<font color='red'>浪客剑心</font>/神剑闯江湖》720p.BD中英双字幕</a></b></td>
脚本内容:
#coding=utf-8
import requests
import re
def func1():
Key_a = "%C0%CB%BF%CD%BD%A3%D0%C4"
url = 'http://s.ygdy8.com/plus/s01.php?typeid=1&keyword=' + Key_a
response = requests.get(url=url)
response.encoding = 'gbk'
Key_1 = response.text
Path_1 = "./2.txt"
f_name = open(Path_1,'w',encoding='utf-8')
Result_1 = f_name.write(Key_1)
f_name.close()
func2()
def func2(): #从文件中读取数据,再对数据进行筛选
Path_1 = "./2.txt"
f_name = open(Path_1,'r',encoding='utf-8')
fields_1 = f_name.readlines() #输出结果为列表,包含换行符
f_name.close()
print("搜索(浪客剑心)所获得的电影名称:")
K_1 = "<td width='55%'" #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u".*?html'>(.*?)</a></b>.*?")
Result_2 = Result_1.findall(Key_1)
a = Result_2[0].split("<font color='red'>")[0]
b = Result_2[0].split("<font color='red'>")[1]
Result_3 = a + b
c = Result_3.split("</font>")[0]
d = Result_3.split("</font>")[1]
Result_4 = c + d
print(Result_4)
if __name__ == '__main__':
func1()
脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
搜索(浪客剑心)所获得的电影名称:
2021年冒险动作《浪客剑心最终章追忆篇》BD日语中字
2021年动作《浪客剑心最终章人诛篇》BD日语中字
2012年动作《浪客剑心/神剑闯江湖》720p.BD中英双字幕
2014年动作《浪客剑心:京都大火篇》BD中文字幕
2014年动作《浪客剑心:传说的完结篇》BD中文字幕
C:\Users\jacky\Desktop>
######
例子六:
获取电影《浪客剑心最终章追忆篇》的相关内容:
笺注:
电影名称的格式,如下:
<div class="title_all"><h1><font color=#07519a>2021年冒险动作《浪客剑心最终章追忆篇》BD日语中字</font></h1></div>
豆瓣评分的格式,如下:
◎豆瓣评分 8.8/10 from 1607 users<br />
导演的格式,如下:
◎导 演 大友启史 Keishi Ohtomo<br />
主演的格式,如下:
◎主 演 佐藤健 Takeru Satoh<br />
编剧的格式,如下:
◎编 剧 和月伸宏 Nobuhiro Watsuki<br /> 大友启史 Keishi Ohtomo<br />◎
简介的格式,如下:
◎简 介<br /><br /> 幕府末期,日本陷入动荡。绯村剑心因剑术高超,被冠以“刽子手拔刀斋”之名,效力于长州藩倒幕部队首领桂小五郎的手下。一天,剑心救下一位名为雪代巴的年轻女子,却被其目睹了杀人行径,他只好将她带到长州藩众人的落脚处。不久后,长州藩武士因池田屋事件引兵上京,随后于禁门之变中战败。剑心与巴以夫妻名义隐居乡间,他第一次感受到了内心的安定。然而,巴的突然失踪打破了这份平静,剑心脸上的十字伤之谜也终于被揭开。<br /><br />
脚本内容:
#coding=utf-8
import requests
import re
def func1(): #获取电影《浪客剑心最终章追忆篇》的网页源代码和内容
url = 'https://www.ygdy8.com/html/gndy/dyzz/20210801/61694.html'
response = requests.get(url=url)
response.encoding = 'gbk'
Key_1 = response.text
Path_1 = "./3.txt"
f_name = open(Path_1,'w',encoding='utf-8') #写入(覆盖)文件内容
Result_1 = f_name.write(Key_1)
f_name.close()
func2()
def func2(): #从文件中读取数据
Path_1 = "./3.txt"
f_name = open(Path_1,'r',encoding='utf-8')
fields_1 = f_name.readlines() #输出结果为列表,包含换行符
f_name.close()
func3(fields_1)
func4(fields_1)
func5(fields_1)
func6(fields_1)
func7(fields_1)
func8(fields_1)
def func3(fields_1): #输出电影名称
K_1 = '<div class="title_all"><h1>' #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u"<div.*?07519a>(.*?)</font>.*?")
Result_2 = Result_1.findall(Key_1)
print(f"电影名称:{Result_2[0]}")
def func4(fields_1): #输出豆瓣评分
K_1 = '◎豆瓣评分' #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u".*?豆瓣评分 (.*?)<br />.*?")
Result_2 = Result_1.findall(Key_1)
print(f"豆瓣评分:{Result_2[0]}")
def func5(fields_1): #输出导演
K_1 = '◎导 演' #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u".*?导 演 (.*?)<br />.*?")
Result_2 = Result_1.findall(Key_1)
print(f"导演:{Result_2[0]}")
def func6(fields_1): #输出主演
K_1 = '◎主 演' #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u".*?主 演 (.*?)<br />.*?")
Result_2 = Result_1.findall(Key_1)
print(f"主演:{Result_2[0]}")
def func7(fields_1): #输出编剧
K_1 = '◎编 剧' #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u".*?编 剧 (.*?)<br />◎.*?")
Result_2 = Result_1.findall(Key_1)
a = Result_2[0].split("<br /> ")[0]
b = Result_2[0].split("<br /> ")[1]
Result_3 = f"{a} / {b}"
print(f"编剧:{Result_3}")
def func8(fields_1): #输出简介
K_1 = '◎简 介' #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u".*?◎简 介<br /><br /> (.*?)<br />.*?")
Result_2 = Result_1.findall(Key_1)
Result_3 = Result_2[0].replace('“','"')
Result_3 = Result_3.replace('”','"')
print(f"简介:{Result_3}")
if __name__ == '__main__':
func1()
脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
电影名称:2021年冒险动作《浪客剑心最终章追忆篇》BD日语中字
豆瓣评分:8.8/10 from 1607 users
导演:大友启史 Keishi Ohtomo
主演:佐藤健 Takeru Satoh
编剧:和月伸宏 Nobuhiro Watsuki / 大友启史 Keishi Ohtomo
简介:幕府末期,日本陷入动荡。绯村剑心因剑术高超,被冠以"刽子手拔刀斋"之名,效力于长州藩倒幕部队首领桂小五郎的手下。一天,剑心救下一位名为雪代巴的年轻女子,却被其目睹了杀人行径,他只好将她带到长州藩众人的落脚处。不久后,长州藩武士因池田屋事件引兵上京,随后于禁门之变中战败。剑心与巴以夫妻名义隐居乡间,他第一次感受到了内心的安定。然而,巴的突然失踪打破了这份平静,剑心脸上的十字伤之谜也终于被揭开。
C:\Users\jacky\Desktop>
######
例子七:
使用命令wget,通过链接地址下载图片:
连接公网安装第三方库(wget):
C:\Users\jacky\Desktop>pip3 install wget -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com
脚本内容:
#coding=utf-8
import wget
URL_1 = 'https://img9.doubanio.com/view/photo/l_ratio_poster/public/p2641350668.jpg' #远程图片文件的链接地址
Path_1 = 'd:/' #本地文件夹;即D盘根目录
try:
wget.download(URL_1,Path_1)
except Exception as e:
print(f"远程文件 {URL_1} 下载失败,原因: {e}")
else:
print(f"远程文件 {URL_1} 下载成功。")
脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
100% [........................................................] 331171 / 331171
远程文件 https://img9.doubanio.com/view/photo/l_ratio_poster/public/p2641350668.jpg 下载成功。
下载下来的文件:
######
例子八:
下载电影《浪客剑心最终章追忆篇》内容里的所有图片:
笺注:
网页内容里的图片链接地址格式,如下:
<img border="0" src="https://img9.doubanio.com/view/photo/l_ratio_poster/public/p2641350668.jpg"
脚本内容:
#coding=utf-8
import requests
import re
import wget
def func1(): #获取电影《浪客剑心最终章追忆篇》的网页源代码和内容
url = 'https://www.ygdy8.com/html/gndy/dyzz/20210801/61694.html'
response = requests.get(url=url)
response.encoding = 'gbk'
Key_1 = response.text
Path_1 = "./3.txt"
f_name = open(Path_1,'w',encoding='utf-8') #写入(覆盖)文件内容
Result_1 = f_name.write(Key_1)
f_name.close()
func2()
def func2(): #从文件中读取数据,再对数据进行筛选
Path_1 = "./3.txt"
f_name = open(Path_1,'r',encoding='utf-8')
fields_1 = f_name.readlines() #输出结果为列表,包含换行符
f_name.close()
K_1 = '<img border="0" src=' #关键字
for Key_1 in fields_1:
if K_1 in Key_1:
Result_1 = re.compile(u'.*?<img border="0" src="(.*?)".*?')
Result_2 = Result_1.findall(Key_1)
func_download(Result_2[0])
def func_download(URL_1): #批量下载文件
Path_1 = f"d:/share/" #本地文件夹;即D:\share
wget.download(URL_1,Path_1)
print(f"远程图片 {URL_1} 下载成功。")
if __name__ == '__main__':
func1()
脚本运行的结果:
C:\Users\jacky\Desktop>python xx.py
100% [........................................................] 331171 / 331171
远程图片 https://img9.doubanio.com/view/photo/l_ratio_poster/public/p2641350668.jpg 下载成功。
C:\Users\jacky\Desktop>
下载下来的文件:(电影《浪客剑心最终章追忆篇》内容里的只有一张图片)
相关文章:
正则表达式
网络爬虫_爬(blog.zhuohua.store)
网络爬虫_爬(word.zhuohua.store)
自定义函数
split()函数
replace()函数
CentOS8安装Flask+Apache2.4反向代理 |